rfc9273xml2.original.xml | rfc9273.xml | |||
---|---|---|---|---|
<?xml version="1.0" encoding="US-ASCII"?> | <?xml version="1.0" encoding="UTF-8"?> | |||
<!-- This template is for creating an Internet Draft using xml2rfc, | <!DOCTYPE rfc [ | |||
which is available here: http://xml.resource.org. --> | <!ENTITY nbsp " "> | |||
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [ | <!ENTITY zwsp "​"> | |||
<!-- One method to get references from the online citation libraries. | <!ENTITY nbhy "‑"> | |||
There has to be one entity for each item to be referenced. | <!ENTITY wj "⁠"> | |||
An alternate method (rfc include) is described in the references. --> | ||||
<!ENTITY RFC4601 SYSTEM | ||||
"http://xml.resource.org/public/rfc/bibxml/reference.RFC.4601.xml"> | ||||
<!ENTITY RFC6395 SYSTEM | ||||
"http://xml.resource.org/public/rfc/bibxml/reference.RFC.6395.xml"> | ||||
<!ENTITY RFC5549 SYSTEM | ||||
"http://xml.resource.org/public/rfc/bibxml/reference.RFC.5549.xml"> | ||||
<!ENTITY RFC2119 SYSTEM | ||||
"http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml"> | ||||
<!ENTITY RFC2629 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
.2629.xml"> | ||||
<!ENTITY RFC5378 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
.5378.xml"> | ||||
]> | ]> | |||
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?> | ||||
<!-- used by XSLT processors --> | ||||
<!-- For a complete list and description of processing instructions (PIs), | ||||
please see http://xml.resource.org/authoring/README.html. --> | ||||
<!-- Below are generally applicable Processing Instructions (PIs) that most I-Ds | ||||
might want to use. | ||||
(Here they are set differently than their defaults in xml2rfc v1.32) --> | ||||
<?rfc strict="yes" ?> | ||||
<!-- give errors regarding ID-nits and DTD validation --> | ||||
<!-- control the table of contents (ToC) --> | ||||
<?rfc toc="yes"?> | ||||
<!-- generate a ToC --> | ||||
<?rfc tocdepth="4"?> | ||||
<!-- the number of levels of subsections in ToC. default: 3 --> | ||||
<!-- control references --> | ||||
<?rfc symrefs="no"?> | ||||
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] --> | ||||
<?rfc sortrefs="yes" ?> | ||||
<!-- sort the reference entries alphabetically --> | ||||
<!-- control vertical white space | ||||
(using these PIs as follows is recommended by the RFC Editor) --> | ||||
<?rfc compact="yes" ?> | ||||
<!-- do not start each main section on a new page --> | ||||
<?rfc subcompact="no" ?> | ||||
<!-- keep one blank line between list items --> | ||||
<!-- end of list of popular I-D processing instructions --> | ||||
<rfc category="info" docName="draft-irtf-nwcrg-nwc-ccn-reqs-09" ipr="trust200902 | ||||
"> | ||||
<!-- category values: std, bcp, info, exp, and historic | ||||
ipr values: full3667, noModification3667, noDerivatives3667 | ||||
you can add the attributes updates="NNNN" and obsoletes="NNNN" | ||||
they will automatically be output with "(if approved)" --> | ||||
<!-- trust200902 --> | ||||
<!-- ***** FRONT MATTER ***** --> | ||||
<front> | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" submissionType="IRTF" category=" | |||
<!-- The abbreviated title is used in the page header - it is only necessary | info" consensus="true" docName="draft-irtf-nwcrg-nwc-ccn-reqs-09" number="9273" | |||
if the | ipr="trust200902" obsoletes="" updates="" xml:lang="en" tocInclude="true" tocDep | |||
full title is longer than 39 characters --> | th="4" symRefs="false" sortRefs="true" version="3"> | |||
<!-- xml2rfc v2v3 conversion 3.13.0 --> | ||||
<front> | ||||
<title abbrev="NC for CCNx/NDN">Network Coding for Content-Centric Networking / Named Data Networking: Considerations and Challenges | <title abbrev="NC for CCNx/NDN">Network Coding for Content-Centric Networking / Named Data Networking: Considerations and Challenges | |||
</title> | </title> | |||
<seriesInfo name="RFC" value="9273"/> | ||||
<!-- add 'role="editor"' below for the editors if appropriate --> | ||||
<!-- Another author who claims to be an editor --> | ||||
<author fullname="Kazuhisa Matsuzono" initials="K" surname="Matsuzono"> | <author fullname="Kazuhisa Matsuzono" initials="K" surname="Matsuzono"> | |||
<organization abbrev="NICT">National Institute of Information and Communic ations Technology</organization> | <organization abbrev="NICT">National Institute of Information and Communic ations Technology</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>4-2-1 Nukui-Kitamachi</street> | <street>4-2-1 Nukui-Kitamachi</street> | |||
<city>Koganei</city> <region>Tokyo</region> | <region>Tokyo</region> | |||
<code>184-8795</code> | <code>184-8795</code> | |||
<country>Japan</country> | <country>Japan</country> | |||
</postal> | </postal> | |||
<email>matsuzono@nict.go.jp</email> | <email>matsuzono@nict.go.jp</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author initials="H" surname="Asaeda" fullname="Hitoshi Asaeda"> | <author initials="H" surname="Asaeda" fullname="Hitoshi Asaeda"> | |||
<organization abbrev="NICT">National Institute of Information and Communic ations Technology</organization> | <organization abbrev="NICT">National Institute of Information and Communic ations Technology</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>4-2-1 Nukui-Kitamachi</street> | <street>4-2-1 Nukui-Kitamachi</street> | |||
<city>Koganei</city> <region>Tokyo</region> | <region>Tokyo</region> | |||
<code>184-8795</code> | <code>184-8795</code> | |||
<country>Japan</country> | <country>Japan</country> | |||
</postal> | </postal> | |||
<email>asaeda@nict.go.jp</email> | <email>asaeda@nict.go.jp</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author fullname="Cedric Westphal" initials="C" surname="Westphal"> | ||||
<author fullname="Cedric Westphal" initials="C" surname="Westphal"> | ||||
<organization abbrev="Huawei">Huawei</organization> | <organization abbrev="Huawei">Huawei</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>2330 Central Expressway</street> | <street>2330 Central Expressway</street> | |||
<city>Santa Clara</city> <region>California</region> | <city>Santa Clara</city> | |||
<code>95050</code> | <region>California</region> | |||
<country>USA</country> | <code>95050</code> | |||
</postal> | <country>United States of America</country> | |||
<email>cedric.westphal@futurewei.com,</email> | </postal> | |||
<email>cedric.westphal@futurewei.com,</email> | ||||
</address> | </address> | |||
</author> | </author> | |||
<date year="2022" month="August"/> | ||||
<date year="2022" /> | ||||
<!-- If the month and year are both specified and are the current ones, xml2r | ||||
fc will fill in the current day for you. If only the current year is specified, | ||||
xml2rfc will fill in the current day and month for you. If the year is not the c | ||||
urrent one, it is necessary to specify at least a month (xml2rfc assumes day="1" | ||||
if not specified for the purpose of calculating the expiry date). With drafts | ||||
it is normally sufficient to specify just the year. --> | ||||
<!-- Meta-data Declarations --> | ||||
<area>IRTF</area> | ||||
<workgroup>NWCRG and ICNRG </workgroup> | ||||
<!-- WG name at the upperleft corner of the doc, | <workgroup>Coding for Efficient Network Communications</workgroup> | |||
IETF is fine for individual submissions. | ||||
If this element is not present, the default is "Network Working Group", | ||||
which is used by the RFC Editor as a nod to the history of the IETF. --> | ||||
<!-- Keywords will be incorporated into HTML output | <keyword>ICN</keyword> | |||
files in a meta tag but they have no effect on text or nroff | <keyword>CCNx</keyword> | |||
output. If you submit your draft to the RFC Editor, the | <keyword>NDN</keyword> | |||
keywords will be used for the search engine. --> | <keyword>network coding</keyword> | |||
<keyword>in-network cache</keyword> | ||||
<abstract> | <abstract> | |||
<t>This document describes the current research outcomes in Network Coding | <t>This document describes the current research outcomes in Network Coding | |||
(NC) for Content-Centric Networking (CCNx) / Named Data Networking (NDN), and cl | (NC) for Content-Centric Networking (CCNx) / Named Data Networking (NDN) and cl | |||
arifies the technical considerations and potential challenges for applying NC in | arifies the technical considerations and potential challenges for applying NC in | |||
CCNx/NDN. This document is the product of the Coding for Efficient Network Comm | CCNx/NDN. This document is the product of the Coding for Efficient Network Comm | |||
unications Research Group (NWCRG) and the Information-Centric Networking Researc | unications Research Group (NWCRG) and the Information-Centric Networking Researc | |||
h Group (ICNRG).</t> | h Group (ICNRG).</t> | |||
</abstract> | </abstract> | |||
</front> | </front> | |||
<middle> | ||||
<middle> | ||||
<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --> | ||||
<section title="Introduction"> | ||||
<t>Information-Centric Networking (ICN) in general, and Content-Centric Ne | ||||
tworking (CCNx) <xref target="Jacobson09" /> or Named Data Networking (NDN) <xre | ||||
f target="Zhang14" /> in particular, have emerged as a novel communication parad | ||||
igm advocating the retrieval of data based on their names. This paradigm pushes | ||||
content awareness into the network layer. It is expected to enable consumers to | ||||
obtain the content they desire in a straightforward and efficient manner from th | ||||
e heterogenous networks they may be connected to. The CCNx/NDN architecture has | ||||
introduced innovative ideas and has stimulated research in a variety of areas, s | ||||
uch as in-network caching, name-based routing, multipath transport, and content | ||||
security. One key benefit of requesting content by name is that it eliminates th | ||||
e requirement to establish a session between the client and a specific server, a | ||||
nd the content can thereby be retrieved from multiple sources.</t> | ||||
<t>In parallel, there has been a growing interest in both academia and ind | ||||
ustry for better understanding the fundamental aspects of Network Coding (NC) to | ||||
ward enhancing key system performance metrics such as data throughput, robustnes | ||||
s and reduction in the required number of transmissions through connected networ | ||||
ks, and redundant transmission on broadcast or point-to-multipoint connections. | ||||
NC is a technique that is typically used for encoding packets to recover from lo | ||||
st source packets at the receiver, and for effectively obtaining the desired inf | ||||
ormation in a fully distributed manner. In addition, in terms of security aspect | ||||
s, NC can be managed using a practical security scheme that deals with pollution | ||||
attacks <xref target="Gkantsidis06" />, and can be utilized for preventing eave | ||||
sdroppers from obtaining meaningful information <xref target="Cai02" /> or prote | ||||
cting a wireless video stream while retaining the NC benefits <xref target="Lima | ||||
10" /> <xref target="Vilela08" />.</t> | ||||
<t>From the perspective of the NC transport mechanism, NC can be divided i | ||||
nto two major categories: coherent NC, and non-coherent NC <xref target="Koetter | ||||
08" /> <xref target="Vyetrenko09" />. In coherent NC, the source and destinatio | ||||
n nodes know the exact network topology and the coding operations available at i | ||||
ntermediate nodes. When multiple consumers are attempting to receive the same co | ||||
ntent such as live video streaming, coherent NC could enable optimal throughput | ||||
by sending the content flow over the constructed optimal multicast trees <xref t | ||||
arget="Wu04" />. However, it requires a fully adjustable and specific routing me | ||||
chanism, and a large computational capacity for central coordination. In the cas | ||||
e of non-coherent NC, which often uses Random Linear Coding (RLC), it is not nec | ||||
essary to know the network topology nor the intermediate coding operations <xref | ||||
target="Ho06" />. As non-coherent NC works in a completely independent and dece | ||||
ntralized manner, this approach is more feasible in terms of eliminating such a | ||||
central coordination.</t> | ||||
<!-- <t>NC combines multiple packets together with parts of the same cont | ||||
ent, and may do this at the source or at other nodes in the network. Network cod | ||||
ed packets are not associated with a specific server, as they may have been comb | ||||
ined within the network. As NC is focused on 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 architecture of the CCNx/NDN core networking layer. NC h | ||||
as already been implemented for information/content dissemination <xref target=" | ||||
Dimarkis10" /> <xref target="Gkantsidis05" /> <xref target="Seferoglu07" />. Mon | ||||
tpetit, et al., first suggested that NC techniques be exploited to enhance key a | ||||
spects of system performance in ICN <xref target="Montpetit12" />. NC provides C | ||||
CNx/NDN with the highly beneficial potential of effectively disseminating inform | ||||
ation in a completely topology independent and decentralized manner.</t> --> | ||||
<!-- <t>NC combines multiple packets together with parts of the same cont | ||||
ent, and may do this at the source and/or at other nodes in the network. Network | ||||
coded packets are not associated with a specific server, as they may have been | ||||
combined within the network. As NC is focused on what information should be enco | ||||
ded in a network packet instead of the specific host at which it has been genera | ||||
ted, it is in line with the architecture of the CCNx/NDN core networking layer. | ||||
In fact, NC has already been implemented for information/content dissemination < | ||||
xref target="Dimarkis10" /> <xref target="Gkantsidis05" /> <xref target="Seferog | ||||
lu07" />. Montpetit, et al., first suggested that NC techniques be exploited to | ||||
enhance key aspects of system performance in ICN <xref target="Montpetit12" />. | ||||
Although CCNx/NDN is excellent with the NC technology to exploit the NC benefits | ||||
(as described in <xref target="Advantages" />), some technical considerations a | ||||
re needed to combine NC and CCNx/NDN owing to the unique features of CCNx/NDN (a | ||||
s described in <xref target="TecCons" />).</t> | ||||
--> | ||||
<t>NC combines multiple packets together with parts of the same content, | ||||
and may do this at the source and/or at other nodes in the network. Network code | ||||
d packets are not associated with a specific server, as they may have been combi | ||||
ned within the network. As NC is focused on what information should be encoded i | ||||
n a network packet instead of the specific host at which it has been generated, | ||||
it is in line with the architecture of the CCNx/NDN core networking layer. NC al | ||||
lows for recovery of missing packets by encoding the information across several | ||||
packets. ICN is synergistic with NC, as it allows for caching of data packets th | ||||
roughout the network. In a typical network that uses NC, the sender must transmi | ||||
t enough packets to retrieve the original data. ICN offers an opportunity to ret | ||||
rieve network coded packets directly from caches in the network and this makes t | ||||
he combination of ICN and NC particularly effective. In fact, NC has already bee | ||||
n implemented for information/content dissemination <xref target="Dimarkis10" /> | ||||
<xref target="Gkantsidis05" /> <xref target="Seferoglu07" />. Montpetit, et al. | ||||
, first suggested that NC techniques be exploited to enhance key aspects of syst | ||||
em performance in ICN <xref target="Montpetit12" />. Although CCNx/NDN excels to | ||||
exploit the benefits of NC (as described in <xref target="Advantages" />), some | ||||
technical considerations are needed to combine NC and CCNx/NDN owing to the uni | ||||
que features of CCNx/NDN (as described in <xref target="TecCons" />).</t> | ||||
<t>In this document, we consider how NC can be applied to the CCNx/NDN ar | ||||
chitecture and describe the technical considerations and potential challenges fo | ||||
r making CCNx/NDN-based communications better using the NC technology. It should | ||||
be noted that the presentation of specific solutions (e.g., NC optimization met | ||||
hods) for enhancing CCNx/NDN performance metrics by exploiting NC is outside the | ||||
scope of this document.</t> | ||||
<t>This document represents the collaborative work and consensus of the C | ||||
oding for Efficient Network Communications Research Group (NWCRG) and the Inform | ||||
ation-Centric Networking Research Group (ICNRG). It is not an IETF product and i | ||||
s not a standard.</t> | ||||
</section> | ||||
<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --> | ||||
<section title="Terminology"> | ||||
<!-- <t>This section provides the terms related to NC and CCNx/NDN used i | ||||
n this document.</t> | ||||
--> | ||||
<section title="Definitions related to NC"> | ||||
<t>This section provides the terms related to NC used in this document, w | ||||
hich are defined in RFC8406 [21] produced by NWCRG.</t> | ||||
<!-- <t>The terms regarding NC used in this document are defined as follo | ||||
ws. These are aligned with RFCs produced by the FEC Framework (FECFRAME) IETF Wo | ||||
rking Groups as well as IRTF Coding for Efficient Network Communications Researc | ||||
h Group (NWCRG)<xref target="I-D.irtf-nwcrg-network-coding-taxonomy" />.</t> | ||||
--> | ||||
<!-- | ||||
<t>The definitions of the general terms used are as follows:</t> | ||||
--> | ||||
<t><list style="symbols"> | ||||
<!-- general definitions --> | ||||
<!-- <t>End-to-End Coding: A system where coding is performed at | ||||
the source or (coding) middlebox, and decoding is performed at the destination(s | ||||
) or (decoding) middlebox. There is no re-coding operation at intermediate nodes | ||||
.</t> --> | ||||
<!-- <t>Network Coding (NC): A system where coding can be perform | ||||
ed at the source as well as at intermediate forwarding nodes (all or a subset of | ||||
them). End-to-End coding is regarded as a special case of network coding.</t> - | ||||
-> | ||||
<!-- <t>Source Symbol: A unit of data originating from the source | ||||
that is used as input to encoding operations.</t> --> | ||||
<!-- <t>Coded Symbol, or Repair Symbol: A unit of data that is th | ||||
e result of a coding operation, applied either to source symbols or (in case of | ||||
re-coding) source and/or coded symbols.</t> --> | ||||
<t>Source Packet: A packet originating from the source that contr | ||||
ibutes to one or more source symbols. The source symbol is a unit of data origin | ||||
ating from the source that is used as input to encoding operations. For instance | ||||
, a real-time transport protocol (RTP) packet as a whole can constitute a source | ||||
symbol. In other situations (e.g., to address variable size packets), a single | ||||
RTP packet may contribute to various source symbols.</t> | ||||
<t>Repair Packet: A packet containing one or more coded symbols ( | ||||
also called repair symbol). Coded symbol or repair symbol is a unit of data that | ||||
is the result of a coding operation, applied either to source symbols or (in ca | ||||
se of re-coding) source and/or coded symbols. When there is a single repair symb | ||||
ol per repair packet, a repair symbol corresponds to a repair packet.</t> | ||||
<!-- | ||||
<t>Coded Packet, or Repair Packet: A packet containing one or mor | ||||
e coded symbols (also called repair symbol). The coded symbol is a unit of data | ||||
that is the result of a coding operation, applied either to source symbols or (i | ||||
n 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.</t> | ||||
<!-- | ||||
<t>Innovative Packet: A source or repair packet that increases th | ||||
e rank of the linear system (also called degrees of freedom) at a receiver.</t> | ||||
--> | ||||
<t>Encoding versus Re-coding versus Decoding: Encoding is an oper | ||||
ation that takes source symbols as input and produces encoding symbols (source o | ||||
r coded symbols) as output. Re-coding is an operation that takes encoding symbol | ||||
s as input and produces encoding symbols as output. Decoding is an operation tak | ||||
es encoding symbols as input and produces source symbols as output.</t> | ||||
</list></t> | ||||
<t>The terms regarding coding types are defined as follows:</t> | ||||
<t><list style="symbols"> | ||||
<!-- Coding Types --> | ||||
<!-- <t>Linear Coding: Linear combination of a set of input symbo | ||||
ls (i.e., source and/or coded symbols) using a given set of coefficients and res | ||||
ulting in a repair symbol.</t> --> | ||||
<t>Random Linear Coding (RLC): A particular form of linear coding | ||||
using a set of random coding coefficients. Linear coding performs linear combin | ||||
ation of a set of input symbols (i.e., source and/or coded symbols) using a give | ||||
n set of coefficients and results in a repair symbol.</t> | ||||
<t>Block Coding: A coding technique wherein the input flow(s) mus | ||||
t be first segmented into a sequence of blocks; encoding and decoding are perfor | ||||
med independently on a per-block basis.</t> | ||||
<!-- <t>Systematic Coding: A coding technique where source symbol | ||||
s are part of the output flow generated by a coding node.</t> --> | ||||
<t>Sliding Window Coding or Convolutional Coding: A general class | ||||
of coding techniques that rely on a sliding encoding window. Encoding window is | ||||
a set of source (and coded in the case of re-coding) symbols used as input to t | ||||
he coding operations. The set of symbols change over time, as the encoding windo | ||||
w slides over the input flow(s). This is an alternative solution to block coding | ||||
.</t> | ||||
<t>Fixed or Elastic Sliding Window Coding: A coding technique tha | ||||
t generates coded symbol(s) on the fly, from the set of source symbols present i | ||||
n the sliding encoding window at that time, usually by using linear coding. The | ||||
sliding window may be either of fixed size or of variable size over the time (a | ||||
lso known as "Elastic Sliding Window"). For instance, the size may depend on ac | ||||
knowledgments sent by the receiver(s) for a particular source symbol or source p | ||||
acket (received, decoded, or decodable).</t> | ||||
</list></t> | ||||
<t>The terms regarding low-level coding aspects are defined as follows:</ | ||||
t> | ||||
<t><list style="symbols"> | ||||
<!-- Coding Basics --> | ||||
<t>Rank of the Linear System or Degrees of Freedom: At a receiver | ||||
, the number of linearly independent equations of the linear system. It is also | ||||
known as "Degrees of Freedom". The system may be of "full rank," wherein decodin | ||||
g is possible, or "partial rank", wherein only partial decoding is possible.</t> | ||||
<t>Generation, or Block: With block codes, the set of source symb | ||||
ols of the input flow(s) that are logically grouped into a block, before doing e | ||||
ncoding.</t> | ||||
<t>Generation Size, or Block Size: With block codes, the number o | ||||
f source symbols belonging to a block. It is equivalent to the number of source | ||||
packets when there is a single source symbol per source packet.</t> | ||||
<!-- | ||||
<t>Generation ID, or Block ID: With block codes, the identifier o | ||||
f a block to which source and coded symbols belong. It is also known as "Source | ||||
Block Number (SBN)".</t> | ||||
--> | ||||
<t>Coding Coefficient: With linear coding, this is a coefficient | ||||
in a certain finite field. This coefficient may be chosen in different ways: for | ||||
instance, randomly, in a predefined table, or using a predefined algorithm plus | ||||
a seed.</t> | ||||
<t>Coding Vector: A set of coding coefficients used to generate a | ||||
certain coded symbol through linear coding.</t> | ||||
<t>Finite Field: Finite fields, used in linear codes, have the de | ||||
sired property of having all elements (except zero) invertible for + and * and n | ||||
o operation over any elements can result in an overflow or underflow. Examples o | ||||
f finite fields are prime fields {0..p^m-1}, where p is prime. Most used fields | ||||
use p=2 and are called binary extension fields {0..2^m-1}, where m often equals | ||||
1, 4 or 8 for practical reasons.</t> | ||||
<!-- <t>Finite Field size: The number of elements in a finite fie | ||||
ld. For example the binary extension field {0..2^m-1} has size q=2^m.</t> --> | ||||
<!-- <t>Feedback: Feedback information sent by a decoding node to | ||||
a node (or from a receiver to a source in case of end-to-end coding). The natu | ||||
re of information contained in a feedback packet varies, depending on the use-ca | ||||
se. It can provide reception and/or decoding statistics, or the list of availab | ||||
le source packets received or decoded, or the list of lost source packets that s | ||||
hould be retransmitted, or a number of additional coded packet needed to have a | ||||
full rank linear system.</t> --> | ||||
</list></t> | ||||
</section> | ||||
<section title="Definitions related to CCNx/NDN"> | ||||
<t>The terminology regarding CCNx/NDN used in this document is defined in | ||||
RFC8793 <xref target="CCNxTerm" /> produced by ICNRG. They are consistent with | ||||
the relevant documents (<xref target="CCNxSema" /> <xref target="CCNxMsg" />).</ | ||||
t> | ||||
<!-- | ||||
<t>The terms regarding CCNx/NDN used in this document are defined | ||||
below. They are consistent with the RFCs produced by the Information-Centric Ne | ||||
tworking (ICNRG) IRTF Working Group<xref target="CCNxSema" /> <xref target="CCNx | ||||
Msg" />.</t> | ||||
<t><list style="symbols"> | ||||
<t>Interest: A message requesting a content object with a matchin | ||||
g name and other optional selectors for selecting from multiple objects having t | ||||
he same name prefix.</t> | ||||
<t>Content Object: A unit of content data delivered through the C | ||||
CNx/NDN network.</t> | ||||
<t>Consumer: A node requesting a name (i.e., content). It initiat | ||||
es the name-based communication by sending an interest packet.</t> | ||||
<t>Publisher: A node that provides content. It originally creates | <section numbered="true" toc="default"> | |||
or owns a content.</t> | <name>Introduction</name> | |||
<t>Information-Centric Networking (ICN), in general, and Content-Centric N | ||||
etworking (CCNx) <xref target="Jacobson09" format="default"/> or Named Data Netw | ||||
orking (NDN) <xref target="Zhang14" format="default"/>, in particular, have emer | ||||
ged as a novel communication paradigm that advocates for the retrieval of data b | ||||
ased on their names. This paradigm pushes content awareness into the network lay | ||||
er. It is expected to enable consumers to obtain the content they desire in a st | ||||
raightforward and efficient manner from the heterogenous networks they may be co | ||||
nnected to. The CCNx/NDN architecture has introduced innovative ideas and has st | ||||
imulated research in a variety of areas, such as in-network caching, name-based | ||||
routing, multipath transport, and content security. One key benefit of requestin | ||||
g content by name is that it eliminates the requirement to establish a session b | ||||
etween the client and a specific server, and the content can thereby be retrieve | ||||
d from multiple sources.</t> | ||||
<t>In parallel, there has been a growing interest in both academia and ind | ||||
ustry for better understanding the fundamental aspects of Network Coding (NC) to | ||||
ward enhancing key system performance metrics, such as data throughput, robustne | ||||
ss and reduction in the required number of transmissions through connected netwo | ||||
rks, and redundant transmission on broadcast or point-to-multipoint connections. | ||||
NC is a technique that is typically used for encoding packets to recover from l | ||||
ost source packets at the receiver and for effectively obtaining the desired inf | ||||
ormation in a fully distributed manner. In addition, in terms of security aspect | ||||
s, NC can be managed using a practical security scheme that deals with pollution | ||||
attacks <xref target="Gkantsidis06" format="default"/> and can be utilized for | ||||
preventing eavesdroppers from obtaining meaningful information <xref target="Cai | ||||
02" format="default"/> or protecting a wireless video stream while retaining the | ||||
NC benefits <xref target="Lima10" format="default"/> <xref target="Vilela08" fo | ||||
rmat="default"/>.</t> | ||||
<t>From the perspective of the NC transport mechanism, NC can be divided i | ||||
nto two major categories: coherent NC and noncoherent NC <xref target="Koetter03 | ||||
" format="default"/> <xref target="Vyetrenko09" format="default"/>. In coherent | ||||
NC, the source and destination nodes know the exact network topology and the co | ||||
ding operations available at intermediate nodes. When multiple consumers are att | ||||
empting to receive the same content, such as live video streaming, coherent NC c | ||||
ould enable optimal throughput by sending the content flow over the constructed | ||||
optimal multicast trees <xref target="Wu04" format="default"/>. However, it requ | ||||
ires a fully adjustable and specific routing mechanism and a large computational | ||||
capacity for central coordination. In the case of noncoherent NC, which often u | ||||
ses Random Linear Coding (RLC), it is not necessary to know the network topology | ||||
nor the intermediate coding operations <xref target="Ho06" format="default"/>. | ||||
As noncoherent NC works in a completely independent and decentralized manner, th | ||||
is approach is more feasible in terms of eliminating such a central coordination | ||||
.</t> | ||||
<t>NC combines multiple packets together with parts of the same content an | ||||
d may do this at the source and/or at other nodes in the network. Network coded | ||||
packets are not associated with a specific server, as they may have been combine | ||||
d within the network. As NC is focused on 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 architecture of the CCNx/NDN core networking layer. NC allo | ||||
ws for recovery of missing packets by encoding the information across several pa | ||||
ckets. ICN is synergistic with NC, as it allows for caching of data packets thro | ||||
ughout the network. In a typical network that uses NC, the sender must transmit | ||||
enough packets to retrieve the original data. ICN offers an opportunity to retri | ||||
eve network-coded packets directly from caches in the network, making the combin | ||||
ation of ICN and NC particularly effective. In fact, NC has already been impleme | ||||
nted for information/content dissemination <xref target="Dimarkis10" format="def | ||||
ault"/> <xref target="Gkantsidis05" format="default"/> <xref target="Seferoglu07 | ||||
" format="default"/>. Montpetit et al. first suggested that NC techniques be ex | ||||
ploited to enhance key aspects of system performance in ICN <xref target="Montpe | ||||
tit12"/>. Although CCNx/NDN excels to exploit the benefits of NC (as described i | ||||
n <xref target="Advantages" format="default"/>), some technical considerations a | ||||
re needed to combine NC and CCNx/NDN owing to the unique features of CCNx/NDN (a | ||||
s described in <xref target="TecCons" format="default"/>).</t> | ||||
<t>In this document, we consider how NC can be applied to the CCNx/NDN arc | ||||
hitecture and describe the technical considerations and potential challenges for | ||||
making CCNx/NDN-based communications better using the NC technology. It should | ||||
be noted that the presentation of specific solutions (e.g., NC optimization meth | ||||
ods) for enhancing CCNx/NDN performance metrics by exploiting NC is outside the | ||||
scope of this document.</t> | ||||
<t>This document represents the collaborative work and consensus of the Co | ||||
ding for Efficient Network Communications Research Group (NWCRG) and the Informa | ||||
tion-Centric Networking Research Group (ICNRG). This document was read and revie | ||||
wed by all the active research group members. It is not an IETF product and is n | ||||
ot a standard.</t> | ||||
</section> | ||||
<t>Router: An intermediate node between the consumer and producer | <section numbered="true" toc="default"> | |||
that facilitates the name-based communication by forwarding interest and data p | <name>Terminology</name> | |||
ackets.</t> | ||||
<t>Forwarding Information Base (FIB): A lookup table in a content | <section numbered="true" toc="default"> | |||
router containing the name prefix and corresponding destination interface for f | <name>Definitions Related to NC</name> | |||
orwarding the interest packets.</t> | <t>This section provides the terms related to NC used in this document, | |||
which are defined in RFC 8406 <xref target="RFC8406" format="default"/> and prod | ||||
uced by the NWCRG.</t> | ||||
<t>Pending Interest Table (PIT): A lookup table populated by the | <dl newline="true" spacing="normal"> | |||
interest packets containing the name prefix of the requested data, and the outgo | <dt>Source Packet:</dt> | |||
ing interface used to forward the received data packets.</t> | <dd>A packet originating from the source that contributes to one or | |||
more source symbols. The source symbol is a unit of data originating from the s | ||||
ource that is used as input to encoding operations. For instance, a Real-time Tr | ||||
ansport Protocol (RTP) packet as a whole can constitute a source symbol. In othe | ||||
r situations (e.g., to address variable size packets), a single RTP packet may c | ||||
ontribute to various source symbols.</dd> | ||||
<dt>Repair Packet:</dt> | ||||
<dd>A packet containing one or more coded symbols (also calle | ||||
d repair symbol). The coded symbol or repair symbol is a unit of data that is th | ||||
e result of a coding operation, applied either to source symbols or (in case of | ||||
recoding) source and/or coded symbols. When there is a single repair symbol per | ||||
repair packet, a repair symbol corresponds to a repair packet.</dd> | ||||
<dt>Encoding versus Recoding versus Decoding:</dt> | ||||
<dd>Encoding is an operation that takes source symbols as inp | ||||
ut and produces encoding symbols (source or coded symbols) as output. Recoding i | ||||
s an operation that takes encoding symbols as input and produces encoding symbol | ||||
s as output. Decoding is an operation that takes encoding symbols as input and p | ||||
roduces source symbols as output.</dd> | ||||
</dl> | ||||
<t>The terms regarding coding types are defined as follows:</t> | ||||
<dl newline="true" spacing="normal"> | ||||
<dt>Random Linear Coding (RLC):</dt> | ||||
<dd>A particular form of linear coding using a set of random | ||||
coding coefficients. Linear coding performs a linear combination of a set of inp | ||||
ut symbols (i.e., source and/or coded symbols) using a given set of coefficients | ||||
and results in a repair symbol.</dd> | ||||
<dt>Block Coding:</dt> | ||||
<dd>A coding technique wherein the input flow(s) must be firs | ||||
t segmented into a sequence of blocks. Encoding and decoding are performed indep | ||||
endently on a per-block basis.</dd> | ||||
<t>Content Store (CS): A storage space for a router to cache cont | <dt>Sliding Window Coding or Convolutional Coding:</dt> | |||
ent objects.</t> | <dd>A general class of coding techniques that rely on a | |||
sliding encoding window. An encoding window is a set of source (and coded in th | ||||
e case of recoding) symbols used as input to the coding operations. The set of s | ||||
ymbols change over time, as the encoding window slides over the input flow(s). T | ||||
his is an alternative solution to block coding.</dd> | ||||
<dt>Fixed or Elastic Sliding Window Coding:</dt> | ||||
<dd>A coding technique that generates coded symbol(s) on the | ||||
fly, from the set of source symbols present in the sliding encoding window at th | ||||
at time, usually by using linear coding. The sliding window may be either of fi | ||||
xed size or of variable size over time (also known as "Elastic Sliding Window"). | ||||
For instance, the size may depend on acknowledgments sent by the receiver(s) f | ||||
or a particular source symbol or source packet (received, decoded, or decodable) | ||||
.</dd> | ||||
</dl> | ||||
<t>The terms regarding low-level coding aspects are defined as follows:< | ||||
/t> | ||||
<dl newline= "true" spacing="normal"> | ||||
<dt>Rank of the Linear System or Degrees of Freedom:</dt> | ||||
<dd>At a receiver, the number of linearly independent equatio | ||||
ns of the linear system. It is also known as "Degrees of Freedom". The system ma | ||||
y be of "full rank", wherein decoding is possible, or "partial rank", wherein on | ||||
ly partial decoding is possible.</dd> | ||||
<dt>Generation or Block:</dt> | ||||
<dd>With block codes, the set of source symbols of the input | ||||
flow(s) that are logically grouped into a block before doing encoding.</dd> | ||||
<dt>Generation Size or Block Size:</dt> | ||||
<dd>With block codes, the number of source symbols belonging | ||||
to a block. It is equivalent to the number of source packets when there is a sin | ||||
gle source symbol per source packet.</dd> | ||||
</list></t> | <dt>Coding Coefficient:</dt> | |||
--> | <dd>With linear coding, this is a coefficient in a certain fi | |||
nite field. This coefficient may be chosen in different ways: for instance, rand | ||||
omly, in a predefined table or using a predefined algorithm plus a seed.</dd> | ||||
<dt>Coding Vector:</dt> | ||||
<dd>A set of coding coefficients used to generate a certain c | ||||
oded symbol through linear coding.</dd> | ||||
<dt>Finite Field:</dt> | ||||
<dd>Finite fields, used in linear codes, have the desired pro | ||||
perty of having all elements (except zero) invertible for + and *, and no operat | ||||
ion over any elements can result in an overflow or underflow. Examples of finite | ||||
fields are prime fields {0..p<sup>m-1</sup>}, where p is prime. Most used fiel | ||||
ds use p=2 and are called binary extension fields {0..2<sup>m-1</sup>}, where m | ||||
often equals 1, 4, or 8 for practical reasons.</dd> | ||||
</dl> | ||||
</section> | ||||
<section numbered="true" toc="default"> | ||||
<name>Definitions Related to CCNx/NDN</name> | ||||
<t>The terminology regarding CCNx/NDN used in this document is defined i | ||||
n RFC 8793 <xref target="RFC8793" format="default"/>, which was produced by the | ||||
ICNRG. They are consistent with the relevant documents (<xref target="RFC8569" f | ||||
ormat="default"/> <xref target="RFC8609" format="default"/>).</t> | ||||
</section> | </section> | |||
</section> | </section> | |||
<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --> | <section numbered="true" toc="default"> | |||
<section title="CCNx/NDN Basics"> | <name>CCNx/NDN Basics</name> | |||
<t>We briefly explain the key concepts of CCNx/NDN. In a CCNx/NDN network, | ||||
<!-- | there are two types of packets at the network level: interest and data packet ( | |||
<t>We briefly explain the key concepts of CCNx/NDN. Both protocols are si | defined in <xref target="RFC8793" section="3.4" sectionFormat="of" format="defau | |||
milar in principle, but differ in some architecture and protocol choices. </t> | lt"/>). The term "content object", which means a unit of content data, is an ali | |||
<t>We briefly explain the key concepts of CCNx/NDN. In a CCNx/NDN network | as to data packet <xref target="RFC8793" format="default"/>. The ICN consumer (d | |||
, there are two types of packets at the network level: interest and data packet | efined in <xref target="RFC8793" section="3.2" sectionFormat="of" format="defaul | |||
(defined in Section 3.4 of <xref target="CCNxTerm" />). The term of content obje | t"/>) requests a content object by sending an interest that carries the name of | |||
ct, which means a unit of content data, is an alias to data packet <xref target= | the data.</t> | |||
"CCNxTerm" />. The ICN consumer (defined in Section 3.2 of <xref target="CCNxTer | ||||
m" />) requests a content object by sending an interest that carries the name o | ||||
f the data.</t> | ||||
<!-- | ||||
One difference to note here between CCNx and NDN is that | ||||
in CCNx <xref target="CCNxMsg" />, the interest is required to carry a full name | ||||
, while in NDN <xref target="NDNPacket" />, it may carry a name prefix (and rece | ||||
ive in return any data with a name matching this prefix).</t> --> | ||||
<t>Once an ICN forwarder (defined in Section 3.2 of <xref target="CCNxTer | ||||
m" />) receives an interest, it performs a series of lookups: first it checks if | ||||
it has a copy of the requested content object available in the cache storage ca | ||||
lled Content Store (CS) (defined in Section 3.3 of <xref target="CCNxTerm" />). | ||||
If it does, it returns the data, and the transaction is considered to have been | ||||
successfully completed.</t> | ||||
<t>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 Section 3.3 | ||||
of <xref target="CCNxTerm" />) to check if there is already an outgoing interes | ||||
t for the same content object. If there is no such interest, then it creates an | ||||
entry in the PIT that lists the name included in the interest, and the interface | ||||
s from which it received the interest. This is later used to send the content ob | ||||
ject back, as interest packets do not carry a source field that identifies the c | ||||
onsumer. If there is already a PIT entry for this name, it is updated with the i | ||||
ncoming interface of this new interest, and the interest is discarded.</t> | ||||
<t>After the PIT lookup, the interest undergoes a Forwarding Information | ||||
Base (FIB) (defined in Section 3.3 of <xref target="CCNxTerm" />) lookup for sel | ||||
ecting an outgoing interface. The FIB lists name prefixes and their correspondin | ||||
g forwarding interfaces in order to send the interest towards a forwarder that p | ||||
ossesses a copy of the requested data.</t> | ||||
<t>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 state every time th | ||||
at an interest is satisfied, and may store the data in their CS.</t> | ||||
<t>Data packets carry some information for verifying data integrity and o | ||||
rigin authentication, and in particular, that the data is indeed that which corr | ||||
esponds to the name <xref target="RFC7927" />. This is necessary because authent | ||||
ication of the object is crucial in CCNx/NDN. However, this step is optional at | ||||
forwarders in order to speed up the processing.</t> | ||||
<t>The key aspect of CCNx/NDN is that the consumer of the content does no | ||||
t establish a session with a specific server. Indeed, the forwarder or producer | ||||
(defined in Section 3.2 of <xref target="CCNxTerm" />) that returns 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 node that provides the content. This, i | ||||
n theory, allows the interests to follow different paths within a network or eve | ||||
n to be sent over completely different networks.</t> | ||||
<t>Once an ICN forwarder (defined in <xref target="RFC8793" section="3.2" | ||||
sectionFormat="of" format="default"/>) receives an interest, it performs a serie | ||||
s of lookups. First, it checks if it has a copy of the requested content object | ||||
available in the cache storage, called Content Store (CS) (defined in <xref targ | ||||
et="RFC8793" section="3.3" sectionFormat="of" format="default"/>). If it does, i | ||||
t returns the data, and the transaction is considered to have been successfully | ||||
completed.</t> | ||||
<t>If it does not have a copy of the requested content object in the CS, i | ||||
t performs a lookup of the Pending Interest Table (PIT) (defined in <xref target | ||||
="RFC8793" section="3.3" sectionFormat="of" format="default"/>) to check if ther | ||||
e is already an outgoing interest for the same content object. If there is no su | ||||
ch interest, then it creates an entry in the PIT that lists the name included in | ||||
the interest and the interfaces from which it received the interest. This is la | ||||
ter used to send the content object back, as interest packets do not carry a sou | ||||
rce field that identifies the consumer. If there is already a PIT entry for this | ||||
name, it is updated with the incoming interface of this new interest, and the i | ||||
nterest is discarded.</t> | ||||
<t>After the PIT lookup, the interest undergoes a Forwarding Information B | ||||
ase (FIB) (defined in <xref target="RFC8793" section="3.3" sectionFormat="of" fo | ||||
rmat="default"/>) lookup for selecting an outgoing interface. The FIB lists name | ||||
prefixes and their corresponding forwarding interfaces in order to send the int | ||||
erest toward a forwarder that possesses a copy of the requested data.</t> | ||||
<t>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 state every time tha | ||||
t an interest is satisfied and may store the data in their CS.</t> | ||||
<t>Data packets carry some information for verifying data integrity and or | ||||
igin authentication and, in particular, that the data is indeed that which corre | ||||
sponds to the name <xref target="RFC7927" format="default"/>. This is necessary | ||||
because authentication of the object is crucial in CCNx/NDN. However, this step | ||||
is optional at forwarders in order to speed up the processing.</t> | ||||
<t>The key aspect of CCNx/NDN is that the consumer of the content does not | ||||
establish a session with a specific server. Indeed, the forwarder or producer ( | ||||
defined in <xref target="RFC8793" section="3.2" sectionFormat="of" format="defau | ||||
lt"/>) that returns the content object is not aware of the network location of t | ||||
he consumer, and the consumer is not aware of the network location of the node t | ||||
hat provides the content. This, in theory, allows the interests to follow differ | ||||
ent paths within a network or even to be sent over completely different networks | ||||
.</t> | ||||
</section> | </section> | |||
<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --> | <section numbered="true" toc="default"> | |||
<section title="NC Basics"> | <name>NC Basics</name> | |||
<t> While the forwarding node simply relays received data packets in conv | <t> While the forwarding node simply relays received data packets in conve | |||
entional IP communication networks, NC allows the node to combine some data pack | ntional IP communication networks, NC allows the node to combine some data packe | |||
ets that are already received into one or several output packets to be sent. In | ts that are already received into one or several output packets to be sent. In t | |||
this section, we simply describe the basic operations of NC. Herein, we focus on | his section, we simply describe the basic operations of NC. Herein, we focus on | |||
RLC in a block coding manner that is well known as a major coding technique.</t | RLC in a block coding manner that is well known as a major coding technique.</t> | |||
> | <t>For simplicity, let us consider an example case of end-to-end coding wh | |||
erein a producer and consumer respectively perform encoding and decoding for a c | ||||
<t>For simplicity, let us consider an example case of end-to-end coding w | ontent object. This end-to-end coding is regarded as a special case of NC. The p | |||
herein a producer and consumer respectively perform encoding and decoding for a | roducer splits the content into several blocks called generations. Encoding and | |||
content object. This end-to-end coding is regarded as a special case of NC. The | decoding are performed independently on a per-block (per-generation) basis. Let | |||
producer splits the content into several blocks called generations. Encoding and | us assume that each generation consists of K original source packets of the same | |||
decoding are performed independently on a per-block (per-generation) basis. Let | size. When the packets do not have the same size, zero padding is added. In ord | |||
us assume that each generation consists of K original source packets of the sam | er to generate one repair packet within a certain generation, the producer linea | |||
e size. When the packets do not have the same size, zero padding is added. In or | rly combines K of the original source packets, where additions and multiplicatio | |||
der to generate one repair packet within a certain generation, the producer line | ns are performed using a coding vector consisting of K coding coefficients that | |||
arly combines K of the original source packets, where additions and multiplicati | are randomly selected in a certain finite field. The producer may respond to int | |||
ons are performed using a coding vector consisting of K coding coefficients that | erests to send the corresponding source packets and repair packets in the conten | |||
are randomly selected in a certain finite field. The producer may respond to in | t flow (called systematic coding), where the repair packets are typically used f | |||
terests to send the corresponding source packets and repair packets in the conte | or recovering lost source packets.</t> | |||
nt flow (called systematic coding), where the repair packets are typically used | <t>Repair packets can also be used for performing encoding. If the forward | |||
for recovering lost source packets.</t> | ing nodes know each coding vector and generation identifier (hereinafter referre | |||
d to as generation ID) of the received repair packets, they may perform an encod | ||||
<t>Repair packets can also be used for performing encoding. If the forwar | ing operation (called recoding), which is the most distinctive feature of NC com | |||
ding nodes know each coding vector and generation identifier (hereinafter referr | pared to other coding techniques.</t> | |||
ed to as generation ID) of the received repair packets, they may perform an enco | <t>At the consumer, decoding is performed by solving a set of linear equat | |||
ding operation (called re-coding), which is the most distinctive feature of NC c | ions that are represented by the coding vectors of the received source and repai | |||
ompared to other coding techniques.</t> | r packets (possibly only repair packets) within a certain generation. In order t | |||
o obtain all the source packets, the consumer requires K linearly independent eq | ||||
<t>At the consumer, decoding is performed by solving a set of linear equa | uations. In other words, the consumer must receive at least K linearly independe | |||
tions that are represented by the coding vectors of the received source and repa | nt data packets (called innovative packets). As receiving a linearly dependent d | |||
ir packets (possibly only repair packets) within a certain generation. In order | ata packet is not useful for decoding, recoding should generate and provide inno | |||
to obtain all the source packets, the consumer requires K linearly independent e | vative packets. One of the major benefits of RLC is that, even for a small-sized | |||
quations. In other words, the consumer must receive at least K linearly independ | finite field (e.g., q=2<sup>8</sup>), the probability of generating linearly de | |||
ent data packets (called innovative packets). As receiving a linearly dependent | pendent packets is negligible <xref target="Wu04" format="default"/>.</t> | |||
data packet is not useful for decoding, re-coding should generate and provide in | ||||
novative packets. One of major benefits of RLC is that even for a small-sized fi | ||||
nite field (e.g., q=2^8), the probability of generating linearly dependent packe | ||||
ts is negligible <xref target="Wu04" />.</t> | ||||
</section> | </section> | |||
<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --> | <section anchor="Advantages" numbered="true" toc="default"> | |||
<name>Advantages of NC and CCNx/NDN</name> | ||||
<section anchor="Advantages" title="Advantages of NC and CCNx/NDN"> | <t>Combining NC and CCNx/NDN can contribute to effective large-scale conte | |||
nt/information dissemination. They individually provide similar benefits, such a | ||||
<t>Combining NC and CCNx/NDN can contribute to effective large-scale conten | s throughput/capacity gain and robustness enhancement. The difference between th | |||
t/information dissemination. They individually provide similar benefits such as | eir approaches is that the former considers content flow as algebraic informatio | |||
throughput/capacity gain and robustness enhancement. The difference between thei | n that is to be combined <xref target="Koetter03" format="default"/>, while the | |||
r approaches is that, the former considers content flow as algebraic information | latter focuses on the content/information itself at the networking layer. Becaus | |||
that is to be combined <xref target="Koetter03" />, while the latter focuses on | e these approaches are complementary and their combination would be advantageous | |||
the content/information itself at the networking layer. Because these approache | , it is natural to combine them.</t> | |||
s are complementary and their combination would be advantageous, it is natural t | <t>The name-based communication in CCNx/NDN enables consumers to obtain re | |||
o combine them.</t> | quested content objects without establishing and maintaining end-to-end communic | |||
ation channels between nodes. This feature facilitates the exploitation of the i | ||||
<t>The name-based communication in CCNx/NDN enables consumers to | n-network cache and multipath/multisource retrieval and also supports consumer m | |||
obtain requested content objects without establishing and maintaining end-to-end | obility without the need for updating the location information/identifier during | |||
communication channels between nodes. This feature facilitates the exploitation | handover <xref target="Jacobson09" format="default"/>. Furthermore, the name-ba | |||
of the in-network cache and multipath/multisource retrieval and also supports c | sed communication intrinsically supports multicast communication because identic | |||
onsumer mobility without the need for updating the location information/identifi | al interests are aggregated at the forwarders.</t> | |||
er during handover <xref target="Jacobson09" />. Furthermore, the name-based com | <t>NC can enable the CCNx/NDN transport system to effectively distribute a | |||
munication intrinsically supports multicast communication because identical inte | nd cache the data associated with multipath data retrieval <xref target="Montpet | |||
rests are aggregated at the forwarders.</t> | it12" format="default"/>. Exploiting multipath data retrieval and in-network cac | |||
hing with NC contributes to not only improving the cache hit rate but also expan | ||||
<t>NC can enable the CCNx/NDN transport system to effecti | ding the anonymity set of each consumer (the set of potential routers that can s | |||
vely distribute and cache the data associated with multipath data retrieval <xre | erve a given consumer) <xref target="Wu16" format="default"/>. The expansion mak | |||
f target="Montpetit12" />. Exploiting multipath data retrieval and in-network ca | es it difficult for adversaries to infer the content consumed by others and thus | |||
ching with NC contributes to not only improving the cache hit rate but also expa | contributes to improving cache privacy. Others also have introduced some use ca | |||
nding the anonymity set of each consumer (the set of potential routers that can | ses of the application of NC in CCNx/NDN, such as the cases of content dissemina | |||
serve a given consumer) <xref target="Wu16" />. The expansion makes it difficult | tion with in-network caching <xref target="Saltarin16" format="default"/> <xref | |||
for adversaries to infer the content consumed by others, and thus contributes t | target="Wang14" format="default"/> <xref target="Wang16" format="default"/>, sea | |||
o improving cache privacy. Others also have introduced some use cases of the app | mless consumer mobility <xref target="Ramakrishnan12" format="default"/> <xref t | |||
lication of NC in CCNx/NDN, such as the cases of content dissemination with in-n | arget="Carofiglio16" format="default"/>, and low-latency low-loss video streamin | |||
etwork caching <xref target="Saltarin16" /> <xref target="Wang14" /> <xref targe | g <xref target="Matsuzono17" format="default"/>. In this context, it is well wor | |||
t="Wang16" />, seamless consumer mobility <xref target="Ramakrishnan12" /> <xref | th considering NC integration in CCNx/NDN.</t> | |||
target="Carofiglio16" />, and low-latency low-loss video streaming <xref target | ||||
="Matsuzono17" />. In this context, it is well worth considering NC integration | ||||
in CCNx/NDN.</t> | ||||
<!-- | ||||
<t>CCNx/NDN does not provide reliable and robust content dissemin | ||||
ation by default. However, NC can enable the CCNx/NDN transport system to effect | ||||
ively distribute and cache the data associated with multipath data retrieval <xr | ||||
ef target="Montpetit12" />. Furthermore, NC can contribute to improving both the | ||||
caching performance and cache privacy that CCNx/NDN newly introduces at the net | ||||
working layer <xref target="Wu16" />. Others also have introduced some use cases | ||||
of the application of NC in CCNx/NDN, such as the cases of content disseminatio | ||||
n with in-network caching <xref target="Saltarin16" /> <xref target="Wang14" /> | ||||
<xref target="Wang16" />, seamless consumer mobility <xref target="Ramakrishnan1 | ||||
2" /> <xref target="Carofiglio16" />, and low-latency low-loss video streaming < | ||||
xref target="Matsuzono17" />. In this context, it is well worth considering NC i | ||||
ntegration in CCNx/NDN.</t> | ||||
</section> | ||||
<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --> | ||||
<section anchor="TecCons" title="Technical Considerations"> | ||||
<t>This section presents the considerations for CCNx/NDN with NC in terms o | ||||
f network architecture and protocol. This document focuses on NC when employed i | ||||
n a block coding manner.</t> | ||||
<!-- ========================================================== --> | ||||
<section anchor="Naming" title="Content Naming"> | ||||
<t>Naming content objects is as important for CCNx/NDN as naming hosts is | ||||
in the current-day Internet <xref target="RFC7927" />. In this section, two pos | ||||
sible naming schemes are presented.</t> | ||||
<section title="Unique Naming for NC Packets"> | ||||
<t>Each source and repair packet (hereinafter referred to as NC packet) m | ||||
ay have a unique name as each original content object has in CCNx/NDN, as PIT an | ||||
d CS operations typically require a unique name for identifying the NC packet. A | ||||
s a method of naming an NC packet that takes into account the feature of block c | ||||
oding, the coding vector and the generation ID can be used as a part of the cont | ||||
ent object name. As in <xref target="Saltarin16" />, when the generation ID is " | ||||
g-id", 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 parameters related to | ||||
the encoding scheme can also be used as name components. For instance, the encod | ||||
ing ID specifying the coding 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) <xref targe | ||||
t="RFC6363" />. This 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 content | ||||
objects.<!--Since such a naming way enables consumer to specify coded packets to | ||||
receive, it could shift the generation of the coding vector from the content pr | ||||
oducer onto the content requester (described in <xref target="Consumer" />).-->< | ||||
/t> | ||||
<t>If a content-naming schema such as the one presented above is used, an | ||||
interest requesting an NC packet may have the full name including a generation | ||||
ID and coding vector (/CCNx.com/video-A/g-id/1000) or only the name prefix inclu | ||||
ding only a generation ID (/CCNx.com/video-A/g-id). In the former case, exact na | ||||
me matching to the PIT is simply performed at data forwarders (as in CCNx/NDN). | ||||
The consumer is able to specify and retrieve an innovative packet necessary for | ||||
the consumer to decode successfully. This could shift the generation of the codi | ||||
ng vector from the data forwarder onto the consumer.</t> | ||||
<t>In the latter case, partial name matching is required at the data forw | ||||
arders. As the interest with only the prefix name matches any NC packet with the | ||||
same prefix, the consumer could immediately obtain an NC packet from a nearby C | ||||
S (in-network cache) without knowing the coding vectors of the cached NC packets | ||||
in advance. In the case wherein NC packets in transit are modified by in-networ | ||||
k re-coding performed at forwarders, the consumer could also receive the modifie | ||||
d NC packets. However, in contrast to the former case, the consumer may fail to | ||||
obtain sufficient degrees of freedom (see <xref target="Router" />). To address | ||||
this issue, a new TLV type in an interest message may be required for specifying | ||||
further coding information in order to limit the NC packets to be received. For | ||||
instance, this is enabled by specifying the coding vectors of innovative packet | ||||
s for the consumer (also called decoding matrix) as in <xref target="Montpetit12 | ||||
" />. This extension may incur an interest packet of significantly increased siz | ||||
e, and it may thus be useful to use compression techniques for coding vectors <x | ||||
ref target="Thomos12" /> <xref target="Lucani14" />. Without such coding informa | ||||
tion provided by the interest, the forwarder would be required to maintain some | ||||
records regarding the interest packets that were satisfied previously (See <xref | ||||
target="Router" />).</t> | ||||
</section> | ||||
<section title="Non-Unique Naming for NC Packets"> | ||||
<t>An NC packet may have a name that indicates that it is an NC packet, | ||||
and move the coding information into a metadata field in the payload (i.e., the | ||||
name includes the data type, source or repair packet). This would not be benefic | ||||
ial for applications or services that may not need to understand the packet payl | ||||
oad. Owing to the possibility that multiple NC packets may have the same name, s | ||||
ome mechanism is required for the consumer to obtain innovative packets. As desc | ||||
ribed in <xref target="Cache" />, a mechanism for managing the multiple innovati | ||||
ve packets in the CS would also be required. In addition, extra computational ov | ||||
erhead would be incurred when the payload is being encrypted.</t> | ||||
</section> | ||||
</section> | ||||
<!-- ========================================================== --> | ||||
<section anchor="Trans" title="Transport"> | ||||
<t>The pull-based request-response feature of CCNx/NDN is a fundamental p | ||||
rinciple of its transport layer; one interest retrieves at most one data packet. | ||||
This means that a forwarder or producer cannot inject unrequested data packets | ||||
on its own initiative. It is believed that it is important that this rule not be | ||||
violated, as 1) it would open denial-of-service (DoS) attacks, 2) it invalidate | ||||
s existing congestion control approaches following this rule, and 3) it would re | ||||
duce the efficiency of existing consumer mobility approaches. Thus, the followin | ||||
g basic operation should be considered for applying NC to CCNx/NDN. Nevertheless | ||||
, such security considerations must be addressed if this rule were to be violate | ||||
d.</t> | ||||
<!-- | ||||
<t>The pull-based request-response feature of CCNx/NDN is a fundamental p | ||||
rinciple of its transport layer; one interest retrieves at most one data packet. | ||||
It is believed that it is important that this rule not be violated, as it would | ||||
open denial-of-service (DoS) attacks, and thus, the following basic operation s | ||||
hould be considered for applying NC to CCNx/NDN. Nevertheless, such security con | ||||
siderations must be addressed if this rule were to be violated.</t> | ||||
<section title="Scope of NC"> | ||||
<t>An open question is whether data forwarder can perform in-network re- | ||||
coding with data packets that are being received in transit, or if only the data | ||||
that matches an interest can be subject to NC operations. In the latter case, e | ||||
ncoding or re-coding is performed to generate the NC packet at any forwarder tha | ||||
t is able to respond to the interest. This could occur when each NC packet has a | ||||
unique name and interest has the full name. On the other hand, if interest has | ||||
a partial name without any coding vector information or multiple NC packets have | ||||
the same name, the former case may occur; re-coding occurs anywhere in the netw | ||||
ork where it is possible to modify the received NC packet and forward it. As CCN | ||||
x/NDN comprises mechanisms for ensuring the integrity of the data during transfe | ||||
r, in-network re-coding introduces complexities in the network that needs consid | ||||
eration for the integrity mechanisms to still work. Similarly, in-network cachin | ||||
g of NC packets at forwarders may be valuable; however, the forwarders would req | ||||
uire some mechanisms to validate the NC packets (see <xref target="Security" />) | ||||
.</t> | ||||
</section> | ||||
<section anchor= "Consumer" title="Consumer Operation"> | ||||
<t>To obtain NC benefits (possibly associated with in-network caching), t | ||||
he consumer is required to issue interests that direct the forwarder (or produce | ||||
r) to respond with innovative packets if available. In the case where each NC pa | ||||
cket may have a unique name (as described in <xref target="Naming" />), by issui | ||||
ng an interest specifying a unique name with g-id and the coding vector for an N | ||||
C packet, the consumer could appropriately receive an innovative packet if it is | ||||
available at some forwarders.</t> | ||||
<t>In order to specify the exact name of the NC packet to be retrieved, t | ||||
he consumer is required to know the valid naming scheme. From a practical viewpo | ||||
int, it is desirable for the consumer application to automatically construct the | ||||
right name components without depending on any application specifications. To t | ||||
his end, the consumer application may retrieve and refer to a manifest <xref tar | ||||
get="CCNxSema" /> that enumerates the content objects including NC packets, or m | ||||
ay use some coding scheme specifier as a name component to construct the name co | ||||
mponents of interests to request innovative packets.</t> | ||||
<!-- | ||||
<t>To obtain NC benefits (possibly associated with in-network caching), t | ||||
he consumer is required to issue interests that direct the forwarder (or produce | ||||
r) to respond with innovative packets if available. When issuing an interest spe | ||||
cifying a unique name with g-id and the coding vector for a coded packet, the co | ||||
nsumer could appropriately receive an innovative packet if it is available at so | ||||
me forwarders. However, the consumer is required to know the naming structure in | ||||
order to specify the exact name of the coded packet to be retrieved. In this en | ||||
d-to-end coding case, if the consumer wants to adjust some coding parameters at | ||||
the producer, some specific scheme would be required to be used.</t> | ||||
<t>Conversely, the consumer without decoding capability (e.g., specific s | ||||
ensor node) may want to receive only the source packets. As described in <xref t | ||||
arget="Naming" />, because the NC packet can have a name that is explicitly diff | ||||
erent from source packets, issuing interests for retrieving source packets is po | ||||
ssible.</t> | ||||
<!-- | ||||
<t>Conversely, the consumer without decoding capability (e.g., specific s | ||||
ensor node) may want to receive only the source packets. As described in <xref t | ||||
arget="Naming" />, because the coded packet can have a name that is explicitly d | ||||
ifferent from source packets, issuing interests for retrieving source packets is | ||||
possible. In NDN, if the interest has only the name prefix, as in the case of / | ||||
NDN.com/file-A, without any selectors, a forwarder may return a matching coded p | ||||
acket.</t> | ||||
</section> | ||||
<section anchor="Router" title="Forwarder Operation"> | ||||
<t>If the forwarder constantly responds to the incoming interests by retu | ||||
rning non-innovative packets, the consumer(s) cannot decode and obtain the sourc | ||||
e packets. This issue could happen when 1) incoming interests for NC packets do | ||||
not specify some coding parameters such as the coding vectors to be used, and 2) | ||||
the forwarder does not have a sufficient number of linearly independent NC pack | ||||
ets (possibly in the CS) to use for re-coding. In this case, the forwarder is re | ||||
quired to determine whether or not it can generate innovative packets to be forw | ||||
arded to the interface(s) at which the interests arrived. An approach to deal wi | ||||
th this issue is that the forwarder maintains a tally of the interests for a spe | ||||
cific name, generation ID and the incoming interface(s), in order to record how | ||||
many degrees of freedom have already been provided <xref target="Saltarin16" />. | ||||
As such a scheme requires state management (and potentially timers) in forwarde | ||||
rs, scalability and practicality must be considered. In addition, some transport | ||||
mechanism for in-network loss detection and recovery <xref target="Matsuzono17" | ||||
/> <xref target="Carofiglio16" /> at forwarder as well as a consumer-driven mec | ||||
hanism could be indispensable for enabling fast loss recovery and realising NC g | ||||
ains. If a forwarder cannot either return a matching innovative packet from 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 non-innovative packet bu | ||||
t instead do a forwarding lookup in its FIB and forward the interest toward the | ||||
producer or upstream forwarder that can provide an innovative packet. In this co | ||||
ntext, to retrieve innovative packet effectively and quickly, an appropriate set | ||||
ting of the FIB and efficient interest forwarding strategies should also be cons | ||||
idered.</t> | ||||
<t>In another possible case, when receiving interests only for source pac | ||||
kets, the forwarder may attempt to decode and obtain all the source packets and | ||||
store them (if the full cache capacity are available), thus enabling a faster re | ||||
sponse to subsequent interests. As re-coding or decoding results in an extra com | ||||
putational overhead, the forwarder is required to determine how to respond to re | ||||
ceived interests according to the use case (e.g., a delay-sensitive or delay-tol | ||||
erant application) and the forwarder situation, such as available cache space an | ||||
d computational capability.</t> | ||||
</section> | ||||
<section title="Producer Operation"> | ||||
<t>Before performing NC for specified content in CCNx/NDN, the producer i | ||||
s responsible for splitting the overall content into small content objects to av | ||||
oid packet fragmentation that could cause unnecessary packet processing and degr | ||||
aded throughput. The size of the content objects should be within the allowable | ||||
packet size in order to avoid packet fragmentation in CCNx/NDN network. The prod | ||||
ucer performs the encoding operation for a set of the small content objects, and | ||||
the naming process for the NC packets.</t> | ||||
<!-- | ||||
<t>If the producer takes the lead in determining the used coding vectors | ||||
and generating the coding packets, there exist two possible end-to-end coding ca | ||||
ses; 1) consumers obtain the names of the coded packets through a certain mechan | ||||
ism, and send the corresponding interests toward the producer to obtain the code | ||||
d packets that have already been generated at the producer; and 2) the producer | ||||
determines the coding vectors after receiving the interests specifying them. In | ||||
the former case, although the consumers cannot flexibly specify a coding vector | ||||
for generating the coded packet to obtain, the latency for obtaining the coded p | ||||
acket can be reduced as compared that in the latter case wherein additional NC o | ||||
perations are required to be performed after receiving the interests. The common | ||||
benefit in such end-to-end coding cases is that if the producer adds a signatur | ||||
e on the coded packets, data validation becomes possible throughout as in the ca | ||||
se of normal CCNx/NDN operations. According to the application requirement for l | ||||
atency, such an NC operation strategy should be considered.</t> | ||||
--> | ||||
<t>If the producer takes the lead in determining what coding vectors to u | ||||
se in generating the NC packets, there are three general strategies for naming a | ||||
nd producing the NC packets:</t> | ||||
<t><list style="numbers"> | ||||
<t>consumers themselves understand in detail the naming conventions used | ||||
for NC packets and thereby can send the corresponding interests toward the produ | ||||
cer to obtain NC packets whose coding parameters have already been determined by | ||||
the producer.</t> | ||||
<t>the producer determines the coding vectors and generates the NC packet | ||||
s after receiving interests specifying the packets the consumer wished to receiv | ||||
e.</t> | ||||
<t>The naming scheme for specifying the coding vectors and corresponding | ||||
NC packets is explicitly represented via a "Manifest" (e.g., FLIC <xref target=" | ||||
Draft-FLIC" />) that can be obtained by the consumer and used to select among th | ||||
e available coding vectors and their corresponding packets, and thereby send the | ||||
corresponding interests.</t> | ||||
</list></t> | ||||
<t>In the first case, although the consumers cannot flexibly specify a co | ||||
ding vector for generating the NC packet to obtain, the latency for obtaining th | ||||
e NC packet is less than in the latter two cases. For the second case, there is | ||||
a latency penalty for the additional NC operations performed after receiving the | ||||
interests. For the third case, the NC packets to be included in the manifest mu | ||||
st be pre-computed by the producer (since the manifest references NC packets by | ||||
their hashes, | ||||
not their names), but the producer can select which to include the manifest, and | ||||
produce multiple manifests either in advance or on demand with different coding | ||||
tradeoffs if so desired.</t> | ||||
<t>A common benefit the first two approaches to end-to-end coding is that | ||||
if the producer adds a signature on the NC packets, data validation becomes pos | ||||
sible throughout (as is the case with CCNx/NDN operation in the absence of NC). | ||||
The third approach of using a manifest trades off the additional latency incurre | ||||
d by the need to fetch the manifest against the efficiency of needing a signatur | ||||
e only on the manifest and not on each individual NC packet.</t> | ||||
</section> | ||||
<section title="Backward Compatibility"> | ||||
<t>NC operations should be applied in addition to the regular ICN behavio | ||||
r, and should function alongside regular ICN operations. Hence, nodes which do n | ||||
ot support NC should still be able to properly handle packets, not only in being | ||||
able to forward the NC packets, but also to cache these packets. An NC framewor | ||||
k should be compatible with a regular framework in order to facilitate backward | ||||
compatibility and smooth migration from one framework to the other.</t> | ||||
<!-- <t>NC operations should be applied in addition to the regular ICN be | ||||
havior, and should function alongside regular ICN operations. Hence, nodes witho | ||||
ut supporting network coding should be able to properly handle NC packets (not o | ||||
nly in forwarding the packets, but also in the caching mechanism). An NC framewo | ||||
rk should be compatible with a regular framework in order to facilitate backward | ||||
compatibility and smooth migration from one framework to the other.</t> | ||||
--> | ||||
<!-- <t>NC operations should be applied in addition to the regular ICN b | ||||
ehavior. Hence, nodes should be able to not support network coding (not only in | ||||
forwarding the packets, but also in the caching mechanism). NC operations should | ||||
function alongside regular ICN operations. An NC framework should be compatible | ||||
with a regular framework in order to facilitate backward compatibility and smoo | ||||
th migration from one framework to the other.</t> --> | ||||
</section> | ||||
</section> | ||||
<!-- ========================================================== --> | ||||
<section anchor="Cache" title="In-network Caching"> | ||||
<t> Caching is a useful technique used for improving throughput a | ||||
nd latency in various applications. In-network caching in CCNx/NDN essentially p | ||||
rovides support at network level and is highly beneficial owing to the involved | ||||
exploitation of NC for enabling effective multicast transmission <xref target="A | ||||
li16" />, multipath data retrieval <xref target="Saltarin16" /> <xref target="Ra | ||||
makrishnan12" />, fast loss recovery <xref target="Matsuzono17" />. However, the | ||||
re remain several issues to be considered.</t> | ||||
<t> There generally exist limitations in the CS capacity, and the | ||||
caching policy affects the consumer's performance <xref target="Perino11" /> <x | ||||
ref target="Podlipnig03" /> <xref target="Rossini13" />. It is thus crucial for | ||||
forwarders to determine which content objects should be cached and which discard | ||||
ed. As delay-sensitive applications often do not require an in-network cache for | ||||
a long period owing to their real-time constraints, forwarders have to know the | ||||
necessity for caching received content objects to save the caching volume. In C | ||||
CNx, this could be made possible by setting a Recommended Cache Time (RCT) in th | ||||
e optional header of the data packet at the producer side. The RCT serves as a g | ||||
uideline for the CS cache in determining how long to retain the content object. | ||||
When the RCT is set as zero, the forwarder recognizes that caching the content o | ||||
bject is not useful. Conversely, the forwarder may cache it when the RCT has a g | ||||
reater value. In NDN, the TLV type of FreshnessPeriod could be used.</t> | ||||
<t>One key aspect of in-network caching is whether or not forward | ||||
ers can cache NC packets in their CS. They may be caching the NC packets without | ||||
having the ability to perform a validation of the content objects. Therefore, t | ||||
he caching of the NC packets would require some mechanism to validate the NC pac | ||||
kets (see <xref target="Security" />). In the case wherein the NC packets have t | ||||
he same name, it would also require some mechanism to identify them.</t> | ||||
</section> | ||||
<!-- ========================================================== --> | ||||
<section anchor="Mobility" title="Seamless Consumer Mobility"> | ||||
<t>A key feature of CCNx/NDN is that it is sessionless, which enables the | ||||
consumer and forwarder to send multiple interests toward different copies of th | ||||
e content in parallel, by using multiple interfaces at the same time in an async | ||||
hronous manner. Through the multipath data retrieval, the consumer could obtain | ||||
the content from multiple copies that are distributed while using the aggregate | ||||
capacity of multiple interfaces. For the link between the consumer and the multi | ||||
ple copies, the consumer can perform a certain rate adaptation mechanism for vid | ||||
eo streaming <xref target="Ramakrishnan12" /> or congestion control for content | ||||
acquisition <xref target="acm-mpath-cc" />.</t> | ||||
<t> NC adds a reliability layer to CCNx in a distributed and asynchronous | ||||
manner, because NC provides a mechanism for ensuring that the interests sent to | ||||
multiple copies of the content in parallel retrieve innovative packets, even in | ||||
the case of packet losses on some of the paths/networks to these copies. This a | ||||
pplies to consumer mobility events <xref target="Ramakrishnan12" />, wherein the | ||||
consumer could receive additional degrees of freedom with any innovative packet | ||||
if at least one available interface exists during the mobility event. An intere | ||||
st forwarding strategy at the consumer (and possibly forwarder) for efficiently | ||||
obtaining innovative packets would be required for the consumer to achieve seaml | ||||
ess consumer mobility.</t> | ||||
<!-- | ||||
<t> NC adds a reliability layer to CCNx in a distributed and asynchronous | ||||
manner, because NC provides a mechanism for ensuring that the interests sent to | ||||
multiple copies of the content in parallel retrieve innovative packets, even in | ||||
the case of packet losses on some of the paths/networks to these copies. This a | ||||
pplies to consumer mobility events <xref target="Ramakrishnan12" />, wherein the | ||||
consumer may connect between multiple access points (APs) before a consumer mob | ||||
ility event (make-before-break handoff). In the case of such a consumer mobility | ||||
event, the consumer is first connected to the previous AP, then to both the pre | ||||
vious and next APs, and then finally only to the next APs. With CCNx, the consum | ||||
er only sends interests on the available interfaces. By combining NC with CCNx/N | ||||
DN, the requesting of coded packets ensures that during the phase wherein it is | ||||
connected to the previous and the next APs at the same time, it would not receiv | ||||
e duplicate data, but does not miss out any content either. The consumer would r | ||||
eceive additional degrees of freedom with any innovative packet it receives on e | ||||
ither interface. From this perspective, an interest forwarding strategy at the c | ||||
onsumer (and possibly forwarder) for efficiently obtaining innovative packets sh | ||||
ould be considered for the consumer to achieve seamless consumer mobility.</t> | ||||
</section> | ||||
</section> | </section> | |||
<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --> | <section anchor="TecCons" numbered="true" toc="default"> | |||
<name>Technical Considerations</name> | ||||
<t>This section presents the considerations for CCNx/NDN with NC in terms | ||||
of network architecture and protocol. This document focuses on NC when employed | ||||
in a block coding manner.</t> | ||||
<section title="Challenges"> | <section anchor="Naming" numbered="true" toc="default"> | |||
<name>Content Naming</name> | ||||
<t>Naming content objects is as important for CCNx/NDN as naming hosts is | ||||
in the current-day Internet <xref target="RFC7927" format="default"/>. In this s | ||||
ection, two possible naming schemes are presented.</t> | ||||
<t>This section presents several primary challenges and research items to be | <section numbered="true" toc="default"> | |||
considered when applying NC in CCNx/NDN.</t> | <name>Unique Naming for NC Packets</name> | |||
<t>Each source and repair packet (hereinafter referred to as NC packet | ||||
) may have a unique name, as each original content object has in CCNx/NDN and as | ||||
PIT and CS operations typically require a unique name for identifying the NC pa | ||||
cket. As a method of naming an NC packet that takes into account the feature of | ||||
block coding, the coding vector and the generation ID can be used as a part of t | ||||
he content object name. As in <xref target="Saltarin16" format="default"/>, when | ||||
the generation ID is "g-id", 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 | ||||
parameters related to the encoding scheme can also be used as name components. | ||||
For instance, the encoding ID specifying the coding scheme may be used with "enc | ||||
&nbhy;id", such as /CCNx.com/video-A/enc-id/g-id/1000, as defined in the FEC Fra | ||||
mework (FECFRAME) <xref target="RFC6363" format="default"/>. This naming scheme | ||||
is simple and can support the delivery of NC packets with exactly the same opera | ||||
tions in the PIT/CS as those for the content objects. | ||||
</t> | ||||
<t>If a content-naming schema, such as the one presented above, is use | ||||
d, an interest requesting an NC packet may have the full name including a genera | ||||
tion ID and coding vector (/CCNx.com/video-A/g-id/1000) or only the name prefix | ||||
including only a generation ID (/CCNx.com/video-A/g-id). In the former case, exa | ||||
ct name matching to the PIT is simply performed at data forwarders (as in CCNx/N | ||||
DN). The consumer is able to specify and retrieve an innovative packet necessary | ||||
for the consumer to decode successfully. This could shift the generation of the | ||||
coding vector from the data forwarder onto the consumer.</t> | ||||
<t>In the latter case, partial name matching is required at the data f | ||||
orwarders. As the interest with only the prefix name matches any NC packet with | ||||
the same prefix, the consumer could immediately obtain an NC packet from a nearb | ||||
y CS (in-network cache) without knowing the coding vectors of the cached NC pack | ||||
ets in advance. In the case wherein NC packets in transit are modified by in-net | ||||
work recoding performed at forwarders, the consumer could also receive the modif | ||||
ied NC packets. However, in contrast to the former case, the consumer may fail t | ||||
o obtain sufficient degrees of freedom (see <xref target="Router" format="defaul | ||||
t"/>). To address this issue, a new TLV type in an interest message may be requi | ||||
red for specifying further coding information in order to limit the NC packets t | ||||
o be received. For instance, this is enabled by specifying the coding vectors of | ||||
innovative packets for the consumer (also called decoding matrix) as in <xref t | ||||
arget="Montpetit12" format="default"/>. This extension may incur an interest pac | ||||
ket of significantly increased size, and it may thus be useful to use compressio | ||||
n techniques for coding vectors <xref target="Thomos12" format="default"/> <xref | ||||
target="Lucani14" format="default"/>. Without such coding information provided | ||||
by the interest, the forwarder would be required to maintain some records regard | ||||
ing the interest packets that were satisfied previously (see <xref target="Route | ||||
r" format="default"/>).</t> | ||||
</section> | ||||
<section numbered="true" toc="default"> | ||||
<name>Nonunique Naming for NC Packets</name> | ||||
<t>An NC packet may have a name that indicates that it is an NC packet | ||||
and move the coding information into a metadata field in the payload (i.e., the | ||||
name includes the data type, source, or repair packet). This would not be benef | ||||
icial for applications or services that may not need to understand the packet pa | ||||
yload. Owing to the possibility that multiple NC packets may have the same name, | ||||
some mechanism is required for the consumer to obtain innovative packets. As de | ||||
scribed in <xref target="Cache" format="default"/>, a mechanism for managing the | ||||
multiple innovative packets in the CS would also be required. In addition, extr | ||||
a computational overhead would be incurred when the payload is being encrypted.< | ||||
/t> | ||||
</section> | ||||
</section> | ||||
<section anchor="Trans" numbered="true" toc="default"> | ||||
<name>Transport</name> | ||||
<t>The pull-based request-response feature of CCNx/NDN is a fundamental | ||||
principle of its transport layer; one interest retrieves, at most, one data pack | ||||
et. This means that a forwarder or producer cannot inject unrequested data packe | ||||
ts on its own initiative. It is believed that it is important that this rule not | ||||
be violated, as 1) it would open denial-of-service (DoS) attacks, 2) it invalid | ||||
ates existing congestion control approaches following this rule, and 3) it would | ||||
reduce the efficiency of existing consumer mobility approaches. Thus, the follo | ||||
wing basic operation should be considered for applying NC to CCNx/NDN. Neverthel | ||||
ess, such security considerations must be addressed if this rule were to be viol | ||||
ated.</t> | ||||
<!-- ========================================================== --> | <section numbered="true" toc="default"> | |||
<section title="Adoption of Convolutional Coding"> | <name>Scope of NC</name> | |||
<t>Several block coding approaches have been proposed thus far; however, | <t>An open question is whether a data forwarder can perform in-network | |||
there is still not sufficient discussion and application of the convolutional c | recoding with data packets that are being received in transit or if only the da | |||
oding approach (e.g., sliding or elastic window coding) in CCNx/NDN. Convolution | ta that matches an interest can be subject to NC operations. In the latter case, | |||
al coding is often appropriate for situations wherein a fully or partially relia | encoding or recoding is performed to generate the NC packet at any forwarder th | |||
ble delivery of continuous data flows is required, and especially when these dat | at is able to respond to the interest. This could occur when each NC packet has | |||
a flows feature realtime constraints. As in <xref target="Pierre11" />, on an en | a unique name and interest has the full name. On the other hand, if interest has | |||
d-to-end coding basis, it would be advantageous for continuous content flow to a | a partial name without any coding vector information or multiple NC packets hav | |||
dopt sliding window coding in CCNx/NDN. In this case, the producer is required t | e the same name, the former case may occur; recoding occurs anywhere in the netw | |||
o appropriately set coding parameters and let the consumer know the information, | ork where it is possible to modify the received NC packet and forward it. As CCN | |||
and the consumer is required to send interests augmented with feedback informat | x/NDN comprises mechanisms for ensuring the integrity of the data during transfe | |||
ion regarding the data reception and/or decoding status. As CCNx/NDN utilises ho | r, in-network recoding introduces complexities in the network that needs conside | |||
p-by-hop forwarding state, it would be worth discussing and investigating how co | ration for the integrity mechanisms to still work. Similarly, in-network caching | |||
nvolutional coding can be applied in a hop-by-hop manner and what benefits might | of NC packets at forwarders may be valuable; however, the forwarders would requ | |||
accrue. In particular, in the case wherein in-network re-coding could occur at | ire some mechanisms to validate the NC packets (see <xref target="Security" form | |||
forwarders, both the encoding window and CS management would be required, and th | at="default"/>).</t> | |||
e corresponding feasibility and practicality should be considered.</t> | </section> | |||
</section> | <section anchor="Consumer" numbered="true" toc="default"> | |||
<name>Consumer Operation</name> | ||||
<t>To obtain NC benefits (possibly associated with in-network caching) | ||||
, the consumer is required to issue interests that direct the forwarder (or prod | ||||
ucer) to respond with innovative packets if available. In the case where each NC | ||||
packet may have a unique name (as described in <xref target="Naming" format="de | ||||
fault"/>), by issuing an interest specifying a unique name with g-id and the cod | ||||
ing vector for an NC packet, the consumer could appropriately receive an innovat | ||||
ive packet if it is available at some forwarders.</t> | ||||
<t>In order to specify the exact name of the NC packet to be retrieved | ||||
, the consumer is required to know the valid naming scheme. From a practical vie | ||||
wpoint, it is desirable for the consumer application to automatically construct | ||||
the right name components without depending on any application specifications. T | ||||
o this end, the consumer application may retrieve and refer to a manifest <xref | ||||
target="RFC8569" format="default"/> that enumerates the content objects, includi | ||||
ng NC packets, or may use some coding scheme specifier as a name component to co | ||||
nstruct the name components of interests to request innovative packets.</t> | ||||
<t>Conversely, the consumer without decoding capability (e.g., specifi | ||||
c sensor node) may want to receive only the source packets. As described in <xre | ||||
f target="Naming" format="default"/>, because the NC packet can have a name that | ||||
is explicitly different from source packets, issuing interests for retrieving s | ||||
ource packets is possible.</t> | ||||
<!-- ========================================================== --> | </section> | |||
<section title="Rate and Congestion Control"> | <section anchor="Router" numbered="true" toc="default"> | |||
<t>The addition of redundancy using repair packets may result in further | <name>Forwarder Operation</name> | |||
network congestion and could adversely affect the overall throughput. In particu | <t>If the forwarder constantly responds to the incoming interests by r | |||
lar, in a situation wherein fair bandwidth sharing is more desirable, each strea | eturning non-innovative packets, the consumer(s) cannot decode and obtain the so | |||
ming flow must adapt to the network conditions to fairly consume the available l | urce packets. This issue could happen when 1) incoming interests for NC packets | |||
ink bandwidth. It is thus necessary that each content flow cooperatively impleme | do not specify some coding parameters, such as the coding vectors to be used, an | |||
nt congestion control to adjust the consumed bandwidth <xref target="Draft-NWC-C | d 2) the forwarder does not have a sufficient number of linearly independent NC | |||
C" />. From this perspective, an effective deployment approach (e.g., a forwarde | packets (possibly in the CS) to use for recoding. In this case, the forwarder is | |||
r-supported approach that can provide benefits under partial deployment) is requ | required to determine whether or not it can generate innovative packets to be f | |||
ired.</t> | orwarded to the interface(s) at which the interests arrived. An approach to deal | |||
with this issue is that the forwarder maintains a tally of the interests for a | ||||
specific name, generation ID, and the incoming interface(s) in order to record h | ||||
ow many degrees of freedom have already been provided <xref target="Saltarin16" | ||||
format="default"/>. As such a scheme requires state management (and potentially | ||||
timers) in forwarders, scalability and practicality must be considered. In addit | ||||
ion, some transport mechanism for in-network loss detection and recovery <xref t | ||||
arget="Carofiglio16" format="default"/><xref target="Matsuzono17" format="defaul | ||||
t"/> at a forwarder, as well as a consumer-driven mechanism, could be indispensa | ||||
ble for enabling fast loss recovery and realizing NC gains. If a forwarder canno | ||||
t either return a matching innovative packet from its local content store, nor p | ||||
roduce on the fly a recoded packet that is innovative, it is important that the | ||||
forwarder not simply return a non-innovative packet but instead do a forwarding | ||||
lookup in its FIB and forward the interest toward the producer or upstream forwa | ||||
rder that can provide an innovative packet. In this context, to retrieve an inno | ||||
vative packet effectively and quickly, an appropriate setting of the FIB and eff | ||||
icient interest-forwarding strategies should also be considered.</t> | ||||
<t>In another possible case, when receiving interests only for source | ||||
packets, the forwarder may attempt to decode and obtain all the source packets a | ||||
nd store them (if the full cache capacity are available), thus enabling a faster | ||||
response to subsequent interests. As recoding or decoding results in an extra c | ||||
omputational overhead, the forwarder is required to determine how to respond to | ||||
received interests according to the use case (e.g., a delay-sensitive or delay-t | ||||
olerant application) and the forwarder situation, such as available cache space | ||||
and computational capability.</t> | ||||
</section> | ||||
<section numbered="true" toc="default"> | ||||
<name>Producer Operation</name> | ||||
<t>Before performing NC for specified content in CCNx/NDN, the produce | ||||
r is responsible for splitting the overall content into small content objects to | ||||
avoid packet fragmentation that could cause unnecessary packet processing and d | ||||
egraded throughput. The size of the content objects should be within the allowab | ||||
le packet size in order to avoid packet fragmentation in a CCNx/NDN network. The | ||||
producer performs the encoding operation for a set of the small content objects | ||||
and the naming process for the NC packets.</t> | ||||
<t>If the producer takes the lead in determining what coding vectors t | ||||
o use in generating the NC packets, there are three general strategies for namin | ||||
g and producing the NC packets:</t> | ||||
<ol spacing="normal" type="1"> | ||||
<li>Consumers themselves understand in detail the naming conventions u | ||||
sed for NC packets and thereby can send the corresponding interests toward the p | ||||
roducer to obtain NC packets whose coding parameters have already been determine | ||||
d by the producer.</li> | ||||
<li>The producer determines the coding vectors and generates the NC pa | ||||
ckets after receiving interests specifying the packets the consumer wished to re | ||||
ceive.</li> | ||||
<li>The naming scheme for specifying the coding vectors and correspond | ||||
ing NC packets is explicitly represented via a "Manifest" (e.g., FLIC <xref targ | ||||
et="I-D.irtf-icnrg-flic" format="default"/>) that can be obtained by the consume | ||||
r and used to select among the available coding vectors and their corresponding | ||||
packets and thereby send the corresponding interests.</li> | ||||
</ol> | ||||
<t>In the first case, although the consumers cannot flexibly specify a | ||||
coding vector for generating the NC packet to obtain, the latency for obtaining | ||||
the NC packet is less than in the latter two cases. For the second case, there | ||||
is a latency penalty for the additional NC operations performed after receiving | ||||
the interests. For the third case, the NC packets to be included in the manifest | ||||
must be pre-computed by the producer (since the manifest references NC packets | ||||
by their hashes, | ||||
not their names), but the producer can select which to include in the manifest a | ||||
nd produce multiple manifests either in advance or on demand with different codi | ||||
ng tradeoffs, if so desired.</t> | ||||
<t>A common benefit of the first two approaches to end-to-end coding i | ||||
s that, if the producer adds a signature on the NC packets, data validation beco | ||||
mes possible throughout (as is the case with the CCNx/NDN operation in the absen | ||||
ce of NC). The third approach of using a manifest trades off the additional late | ||||
ncy incurred by the need to fetch the manifest against the efficiency of needing | ||||
a signature only on the manifest and not on each individual NC packet.</t> | ||||
</section> | ||||
<section numbered="true" toc="default"> | ||||
<name>Backward Compatibility</name> | ||||
<t>NC operations should be applied in addition to the regular ICN behavi | ||||
or and should function alongside regular ICN operations. Hence, nodes that do no | ||||
t support NC should still be able to properly handle packets, not only in being | ||||
able to forward the NC packets but also to cache these packets. An NC framework | ||||
should be compatible with a regular framework in order to facilitate backward co | ||||
mpatibility and smooth migration from one framework to the other.</t> | ||||
</section> | ||||
</section> | ||||
<!-- From this perspective, although a forwarder-supported approach would | <section anchor="Cache" numbered="true" toc="default"> | |||
be effective, an effective deployment approach that provides benefits under par | <name>In-Network Caching</name> | |||
tial deployment is required.</t> --> | <t> Caching is a useful technique used for improving throughput and late | |||
ncy in various applications. In-network caching in CCNx/NDN essentially provides | ||||
support at the network level and is highly beneficial, owing to the involved ex | ||||
ploitation of NC for enabling effective multicast transmission <xref target="Ali | ||||
16" format="default"/>, multipath data retrieval <xref target="Saltarin16" forma | ||||
t="default"/> <xref target="Ramakrishnan12" format="default"/>, and fast loss re | ||||
covery <xref target="Matsuzono17" format="default"/>. However, there remain seve | ||||
ral issues to be considered.</t> | ||||
<t> There generally exist limitations in the CS capacity, and the cachin | ||||
g policy affects the consumer's performance <xref target="Perino11" format="defa | ||||
ult"/> <xref target="Podlipnig03" format="default"/> <xref target="Rossini13" fo | ||||
rmat="default"/>. It is thus crucial for forwarders to determine which content o | ||||
bjects should be cached and which discarded. As delay-sensitive applications oft | ||||
en do not require an in-network cache for a long period, owing to their real-tim | ||||
e constraints, forwarders have to know the necessity for caching received conten | ||||
t objects to save the caching volume. In CCNx, this could be made possible by se | ||||
tting a Recommended Cache Time (RCT) in the optional header of the data packet a | ||||
t the producer side. The RCT serves as a guideline for the CS cache in determini | ||||
ng how long to retain the content object. When the RCT is set as zero, the forwa | ||||
rder recognizes that caching the content object is not useful. Conversely, the f | ||||
orwarder may cache it when the RCT has a greater value. In NDN, the TLV type of | ||||
FreshnessPeriod could be used.</t> | ||||
<t>One key aspect of in-network caching is whether or not forwarders can | ||||
cache NC packets in their CS. They may be caching the NC packets without having | ||||
the ability to perform a validation of the content objects. Therefore, the cach | ||||
ing of the NC packets would require some mechanism to validate the NC packets (s | ||||
ee <xref target="Security" format="default"/>). In the case wherein the NC packe | ||||
ts have the same name, it would also require some mechanism to identify them.</t | ||||
> | ||||
</section> | ||||
<t>As described in <xref target="Mobility" />, NC can contribute to seaml | <section anchor="Mobility" numbered="true" toc="default"> | |||
ess consumer mobility by obtaining innovative packets without receiving duplicat | <name>Seamless Consumer Mobility</name> | |||
ed packets through multipath data retrieval, and avoiding duplicated packets has | <t>A key feature of CCNx/NDN is that it is sessionless, which enables th | |||
congestion control benefits as well. It can be challenging to develop an effect | e consumer and forwarder to send multiple interests toward different copies of t | |||
ive rate and congestion control mechanism in order to achieve seamless consumer | he content in parallel, by using multiple interfaces at the same time in an asyn | |||
mobility while improving the overall throughput or latency by fully exploiting N | chronous manner. Through the multipath data retrieval, the consumer could obtain | |||
C operations.</t> | the content from multiple copies that are distributed while using the aggregate | |||
<!-- <t>As described in <xref target="Mobility" />, NC can contribute to | capacity of multiple interfaces. For the link between the consumer and the mult | |||
seamless consumer mobility by obtaining innovative packets without receiving dup | iple copies, the consumer can perform a certain rate adaptation mechanism for vi | |||
licated packets through multipath data retrieval. It can be challenging to devel | deo streaming <xref target="Ramakrishnan12" format="default"/> or congestion con | |||
op an effective rate and congestion control mechanism in order to achieve seamle | trol for content acquisition <xref target="acm-mpath-cc" format="default"/>.</t> | |||
ss consumer mobility while improving the overall throughput or latency by fully | <t> NC adds a reliability layer to CCNx in a distributed and asynchronou | |||
exploiting NC operations.</t> --> | s manner, because NC provides a mechanism for ensuring that the interests sent t | |||
o multiple copies of the content in parallel retrieve innovative packets, even i | ||||
n the case of packet losses on some of the paths/networks to these copies. This | ||||
applies to consumer mobility events <xref target="Ramakrishnan12" format="defaul | ||||
t"/>, wherein the consumer could receive additional degrees of freedom with any | ||||
innovative packet if at least one available interface exists during the mobility | ||||
event. An interest-forwarding strategy at the consumer (and possibly forwarder) | ||||
for efficiently obtaining innovative packets would be required for the consumer | ||||
to achieve seamless consumer mobility.</t> | ||||
</section> | ||||
</section> | ||||
<section numbered="true" toc="default"> | ||||
<name>Challenges</name> | ||||
<t>This section presents several primary challenges and research items to | ||||
be considered when applying NC in CCNx/NDN.</t> | ||||
<section numbered="true" toc="default"> | ||||
<name>Adoption of Convolutional Coding</name> | ||||
<t>Several block coding approaches have been proposed thus far; however, t | ||||
here is still not sufficient discussion and application of the convolutional cod | ||||
ing approach (e.g., sliding or elastic window coding) in CCNx/NDN. Convolutional | ||||
coding is often appropriate for situations wherein a fully or partially reliabl | ||||
e delivery of continuous data flows is required and especially when these data f | ||||
lows feature real-time constraints. As in <xref target="Pierre11" format="defaul | ||||
t"/>, on an end-to-end coding basis, it would be advantageous for continuous con | ||||
tent flow to adopt sliding window coding in CCNx/NDN. In this case, the producer | ||||
is required to appropriately set coding parameters and let the consumer know th | ||||
e information, and the consumer is required to send interests augmented with fee | ||||
dback information regarding the data reception and/or decoding status. As CCNx/N | ||||
DN utilizes the hop-by-hop forwarding state, it would be worth discussing and in | ||||
vestigating how convolutional coding can be applied in a hop-by-hop manner and w | ||||
hat benefits might accrue. In particular, in the case wherein in-network recodin | ||||
g could occur at forwarders, both the encoding window and CS management would be | ||||
required, and the corresponding feasibility and practicality should be consider | ||||
ed.</t> | ||||
</section> | ||||
<section numbered="true" toc="default"> | ||||
<name>Rate and Congestion Control</name> | ||||
<t>The addition of redundancy using repair packets may result in further n | ||||
etwork congestion and could adversely affect the overall throughput. In particul | ||||
ar, in a situation wherein fair bandwidth sharing is more desirable, each stream | ||||
ing flow must adapt to the network conditions to fairly consume the available li | ||||
nk bandwidth. It is thus necessary that each content flow cooperatively implemen | ||||
t congestion control to adjust the consumed bandwidth <xref target="RFC9265" for | ||||
mat="default"/>. From this perspective, an effective deployment approach (e.g., | ||||
a forwarder-supported approach that can provide benefits under partial deploymen | ||||
t) is required.</t> | ||||
<t>As described in <xref target="Mobility" format="default"/>, NC can | ||||
contribute to seamless consumer mobility by obtaining innovative packets withou | ||||
t receiving duplicated packets through multipath data retrieval, and avoiding du | ||||
plicated packets has congestion control benefits as well. It can be challenging | ||||
to develop an effective rate and congestion control mechanism in order to achiev | ||||
e seamless consumer mobility while improving the overall throughput or latency b | ||||
y fully exploiting NC operations.</t> | ||||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<!-- ========================================================== --> | <name>Security</name> | |||
<section title="Security"> | <t>While CCNx/NDN introduces new security issues at the networking layer t | |||
hat are different from the IP network, such as a cache poisoning, pollution atta | ||||
<t>While CCNx/NDN introduces new security issues at the networking layer | cks, and a DoS attack using interest packets, some security approaches are alrea | |||
that are different from the IP network, such as a cache poisoning and pollution | dy provided <xref target="RFC7927" format="default"/> <xref target="RFC7945" for | |||
attacks, a DoS attack using interest packets, some security approaches are alrea | mat="default"/>. The application of NC in CCNx/NDN brings two potential security | |||
dy provided <xref target="RFC7927" /> <xref target="RFC7945" />. The application | aspects that need to be dealt with.</t> | |||
of NC in CCNx/NDN brings two potential security aspects that need to be dealt w | <t>The first is in-network recoding at forwarders. Some mechanism for ensu | |||
ith.</t> | ring the integrity of the NC packets newly produced by in-network recoding is re | |||
quired in order for consumers or other forwarders to receive valid NC packets. T | ||||
<t>The first is in-network re-coding at forwarders. Some mechanism for en | o this end, there are some possible approaches described in <xref target="Securi | |||
suring the integrity of the NC packets newly produced by in-network re-coding is | ty" format="default"/>, but there may be a more effective method with lower comp | |||
required in order for consumers or other forwarders to receive valid NC packets | lexity and computation overhead.</t> | |||
. To this end, there are some possible approaches described in <xref target="Sec | <t>The second is that attackers maliciously request and inject NC packets, | |||
urity" />, but there may be more effective method with lower complexity and comp | which could amplify some attacks. As NC packets are unpopular in general use, t | |||
utation overhead.</t> | hey could be targeted by a cache pollution attack that requests less popular con | |||
tent objects more frequently to undermine popularity-based caching by skewing th | ||||
<t>The second is that attackers maliciously request and inject NC packets | e content popularity. Such an attack needs to be dealt with in order to maintain | |||
, which could amplify some attacks. | the in-network cache efficiency. By injecting invalid NC packets with the goal | |||
As NC packets are unpopular in general use, they could be targeted by a cache po | of filling the CSs at the forwarders with them, the cache poisoning attack could | |||
llution attack that requests less popular content objects more frequently to und | be effectual depending on the exact integrity coverage on NC packets. On the as | |||
ermine popularity-based caching by skewing the content popularity. Such an attac | sumption that each NC packet has the valid signature, the straightforward approa | |||
k needs to be dealt with in order to maintain the in-network cache efficiency. | ch would comprise the forwarders verifying the signature within the NC packets i | |||
By injecting invalid NC packets with the goal of filling the CSs at the forwarde | n transit and only transmitting and storing the validated NC packets. However, a | |||
rs with them, the cache poisoning attack could be effectual depending on the exa | s performing a signature verification by the forwarders may be infeasible at lin | |||
ct integrity coverage on NC packets. | e speed, some mechanisms should be considered for distributing and reducing the | |||
On the assumption that each NC packet has the valid signature, the straightforwa | load of signature verification in order to maintain in-network cache benefits, s | |||
rd approach would comprise the forwarders verifying the signature within the NC | uch as latency and network-load reduction. | |||
packets in transit and only transmitting and storing the validated NC packets. H | </t> | |||
owever, as performing a signature verification by the forwarders may be infeasib | ||||
le at line speed, some mechanisms should be considered for distributing and redu | ||||
cing the load of signature verification, in order to maintain in-network cache b | ||||
enefits such as latency and network-load reduction. | ||||
<!-- Furthermore, denial of service (DoS) attacks with the goal of imposing a hi | ||||
gher computation load owing to the NC operations at forwarders and/or the produc | ||||
er should be effectively detected and dealt with.--> <!--Denial of Service (DoS) | ||||
attacks may also target the routers and/or the publisher performing NC in order | ||||
to impose a higher computation load owing to the NC operations. --></t> | ||||
<!-- | ||||
<t>While CCNx/NDN introduces new security issues at the networking layer | ||||
that are different from the IP network, such as a cache poisoning and pollution | ||||
attacks, a DoS attack using interest packets, some security approaches are alrea | ||||
dy provided <xref target="RFC7927" /> <xref target="RFC7945" />. The application | ||||
of NC in CCNx/NDN has various impacts on the security mechanisms of CCNx/NDN.</ | ||||
t> | ||||
<t>CCNx/NDN is designed to detect modification of the data packets; the d | ||||
ata packet for a specific name can be self-authenticated, can be validated on th | ||||
e delivery path, and may also be cached at untrusted forwarders. NC may bring up | ||||
a security issue related to data integrity when performing in-network re-coding | ||||
, as attackers could inject invalid data packets, and fill the CSs at the forwar | ||||
ders with the invalid content objects (cache poisoning attack). On the assumptio | ||||
n that each coded packet has the valid signature, the straightforward approach w | ||||
ould comprise the forwarders verifying the signature within the coded packets in | ||||
transit and only transmitting and storing the validated coded packets. However, | ||||
as performing a signature verification by the forwarders may be infeasible at l | ||||
ine speed, some mechanisms should be considered for distributing and reducing th | ||||
e load of signature verification, in order to maintain in-network cache benefits | ||||
such as latency and network-load reduction. </t> | ||||
<t>In addition, to maintain the in-network cache efficiency, forwarders w | ||||
ith CS should take caution when caching validated coded packets. As coded packet | ||||
s are unpopular in general use, they could be targeted by a cache pollution atta | ||||
ck that requests less popular content objects more frequently to undermine popul | ||||
arity-based caching by skewing the content popularity. Denial of Service (DoS) a | ||||
ttacks may also target the forwarders and/or the producer performing NC in order | ||||
to impose a higher computation load owing to the NC operations. NC also offers | ||||
a new surface of attack; if the coding vector is exposed at the network layer, i | ||||
t would have to be protected (and validated) in order to prevent modifications b | ||||
y an attacker (and allow for verification) on the path of the packet.</t> | ||||
<t>On the other hand, NC could be used to mitigate privacy issues CCNx/ND | ||||
N introduces. For instance, assuming that consumers can use multipath data retri | ||||
eval and caching in CCNx/NDN with NC, cache privacy and anonymity set for consum | ||||
ers can be improved in addition to caching performance owing to the diversity of | ||||
the caching content objects along different paths <xref target="Wu16" />.</t> | ||||
<t>In this context, it can be a challenge that coping with the security i | ||||
ssues as low computation overhead as possible while facilitating the NC operatio | ||||
ns in CCNx/NDN. From the perspective of both feasibility and practicability, mor | ||||
e effective approaches with consideration of security would be required in order | ||||
to accelerate the deployment of CCNx/NDN with NC.</t> | ||||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<!-- ========================================================== --> | <name>Routing Scalability</name> | |||
<section title="Routing Scalability"> | <t>In CCNx/NDN, a name-based routing protocol without a resolution process | |||
streamlines the routing process and reduces the overall latency. In IP routing, | ||||
<t>In CCNx/NDN, a name-based routing protocol without a resolutio | the growth in the routing table size has become a concern. It is thus necessary | |||
n process streamlines the routing process and reduces the overall latency. In IP | to use a hierarchical naming scheme in order to improve the routing scalability | |||
routing, the growth in the routing table size has become a concern. It is thus | by enabling the aggregation of the routing information.</t> | |||
necessary to use a hierarchical naming scheme in order to improve the routing sc | <t>To realize the benefits of NC, consumers need to efficiently obtain inn | |||
alability by enabling the aggregation of the routing information.</t> | ovative packets using multipath retrieval mechanisms of CCNx/NDN. This would req | |||
<t>To realize the benefits of NC, consumers need to efficiently o | uire some efficient routing mechanism to appropriately set the FIB and also an e | |||
btain innovative packets using multipath retrieval mechanisms of CCNx/NDN. This | fficient interest-forwarding strategy. Such routing coordination may create rout | |||
would require some efficient routing mechanism to appropriately set the FIB and | ing scalability issues. It would be challenging to achieve effective and scalabl | |||
also an efficient interest forwarding strategy. Such routing coordination may cr | e routing for interests requesting NC packets, as well as to simplify the routin | |||
eate routing scalability issues. It would be challenging to achieve effective an | g process.</t> | |||
d scalable routing for interests requesting NC packets as well as to simplify th | </section> | |||
e routing process.</t> | ||||
<!-- <t>In CCNx/NDN, a name-based routing protocol without a resolution | ||||
process streamlines the routing process and reduces the overall latency. In IP r | ||||
outing, the growth in the routing table size has become a concern. It is thus ne | ||||
cessary to use a hierarchical naming scheme in order to improve the routing scal | ||||
ability by enabling the aggregation of the routing information. It is a challeng | ||||
e to enable consumers to efficiently obtain innovative packets using multipath r | ||||
etrieval in a fully distributed manner, and thus fully leverage NWC in CCNx/NDN | ||||
to improve throughput or reduce latency. This would require some efficient routi | ||||
ng mechanism to appropriately set the FIB and also an efficient interest forward | ||||
ing strategy. Such routing coordination may create routing scalability issues. F | ||||
rom another NWC perspective, as described in <xref target="Consumer" />, when is | ||||
suing interests while specifying unique names for each coded packet, the consume | ||||
rs are required to know in advance how to specify the names of the coded packet | ||||
through some specific name-resolution scheme, and it may be necessary for router | ||||
s to appropriately set the FIBs. In this context, it would be challenging to ach | ||||
ieve effective and scalable routing for interests requesting coded packets as we | ||||
ll as to simplify the routing process.</t> --> | ||||
</section> | ||||
<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --> | ||||
</section> | </section> | |||
<section anchor="Security" title="Security Considerations"> | ||||
<t>In-network re-coding is a distinguishing feature of NC. Only valid NC | ||||
packets produced by in-network re-coding must be requested and utilized (and pos | ||||
sibly stored). To this end, there exist some possible approaches. First, as a si | ||||
gnature verification approach, the exploitation of multi-signature capability co | ||||
uld be applied. This allows not only the original content producer but also some | ||||
forwarders responsible for in-network re-coding to have their own unique signin | ||||
g key. Each forwarder of the group signs newly generated NC packet in order for | ||||
other nodes to be able to validate the data with the signature. The CS may verif | ||||
y the signature within the NC packet before storing it to avoid invalid data cac | ||||
hing. Second, as a consumer-dependent approach, the consumer puts a restriction | ||||
on the matching rule using only the name of the requested data. The interest amb | ||||
iguity can be clarified by specifying both the name and the key identifier (the | ||||
producer's public key digest) used for matching to the requested data. This KeyI | ||||
d restriction is built in the CCNx design <xref target="CCNxSema" />. Only the r | ||||
equested data packet satisfying the interest with the KeyId restriction would be | ||||
forwarded and stored in the CS, thus resulting in a reduction in the chances of | ||||
cache poisoning. Moreover, in the CCNx design, there exists the rule that the C | ||||
S obeys in order to avoid amplifying invalid data; if an interest has a KeyID re | ||||
striction, the CS must not reply unless it knows that the signature on the match | ||||
ing content object is correct. If the CS cannot verify the signature, the intere | ||||
st may be treated as a cache miss and forwarded to the upstream forwarder(s). Th | ||||
ird, as a certificate chain management approach (possibly without certificate au | ||||
thority), some mechanism such as <xref target="RiHopAuth" /> could be used to es | ||||
tablish a trustworthy data delivery path. This approach adopts the hop-by-hop au | ||||
thentication mechanism, wherein forwarding-integrated hop-by-hop certificate col | ||||
lection is performed to provide suspension certificate chains such that the data | ||||
retrieval is trustworthy.</t> | ||||
<!-- data integrity, cache poisoning | ||||
<t>In-network re-coding is a distinguishing feature of NC; however, it ma | ||||
y lead to cache poisoning attacks that inject invalid coded packets to the netwo | ||||
rk. To address this issue, there exist some possible approaches. First, as a sig | ||||
nature verification approach, the exploitation of multi-signature capability cou | ||||
ld be applied. This allows not only the original content producer but also some | ||||
forwarders responsible for in-network re-coding to have their own unique signing | ||||
key. Each forwarder of the group signs newly generated coded packet in order fo | ||||
r other nodes to be able to validate the data with the signature. The CS may ver | ||||
ify the signature within the coded packet before storing it to avoid invalid dat | ||||
a caching. Second, as a consumer-dependent approach, the consumer puts a restric | ||||
tion on the matching rule using only the name of the requested data. The interes | ||||
t ambiguity can be clarified by specifying both the name and the key identifier | ||||
(the producer's public key digest) used for matching to the requested data. This | ||||
KeyId restriction is built in the CCNx design <xref target="CCNxSema" />. Only | ||||
the requested data packet satisfying the interest with the KeyId restriction wou | ||||
ld be forwarded and stored in the CS, thus resulting in a reduction in the chanc | ||||
es of cache poisoning. Moreover, in the CCNx design, there exists the rule that | ||||
the CS obeys in order to avoid amplifying invalid data; if an interest has a Key | ||||
ID restriction, the CS must not reply unless it knows that the signature on the | ||||
matching content object is correct. If the CS cannot verify the signature, the i | ||||
nterest may be treated as a cache miss and forwarded to the upstream forwarder(s | ||||
). Third, as a certificate chain management approach (possibly without certifica | ||||
te authority), some mechanism such as <xref target="RiHopAuth" /> could be used | ||||
to establish a trustworthy data delivery path. This approach adopts the hop-by-h | ||||
op authentication mechanism, wherein forwarding-integrated hop-by-hop certificat | ||||
e collection is performed to provide suspension certificate chains such that the | ||||
data retrieval is trustworthy.</t> | ||||
<!-- cache pollution attack --> | ||||
<t>Depending on the adopted caching strategy such as cache replacement po | ||||
licies, forwarders should also take caution when storing and retaining the NC pa | ||||
ckets in the CS as they could be targeted by cache pollution attacks. In order t | ||||
o mitigate the cache pollution attacks' impact, forwarders should check the cont | ||||
ent request frequencies to detect the attack and may limit requests by ignoring | ||||
some of the consecutive requests. The forwarders can then decide to apply or cha | ||||
nge to the other cache replacement mechanism.</t> | ||||
<!-- DoS Attack --> | ||||
<t>The forwarders or producers require careful attention to the DoS attac | ||||
ks aiming at provoking the high load of NC operations by using the interests for | ||||
NC packets. In order to mitigate such attacks, the forwarders could adopt a rat | ||||
e-limiting approach. For instance, they could monitor the PIT size growth for NC | ||||
packets per content to detect the attacks, and limit the interest arrival rate | ||||
when necessary. If the NC application wishes to secure an interest (considered a | ||||
s the NC actuator) in order to prevent such attacks, the application should cons | ||||
ider using an encrypted wrapper and an explicit protocol. | ||||
</t> | ||||
<section anchor="iana" numbered="true" toc="default"> | ||||
<name>IANA Considerations</name> | ||||
<t>This document has no IANA actions.</t> | ||||
</section> | </section> | |||
<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --> | <section anchor="Security" numbered="true" toc="default"> | |||
<section title="Acknowledgements"> | <name>Security Considerations</name> | |||
<t>The authors would like to thank ICNRG and NWCRG members, especially Ma | <t>In-network recoding is a distinguishing feature of NC. Only valid NC pa | |||
rie-Jose Montpetit, David Oran, Vincent Roca, and Thierry Turletti, for their va | ckets produced by in-network recoding must be requested and utilized (and possib | |||
luable comments and suggestions on this document.</t> | ly stored). To this end, there exist some possible approaches. First, as a signa | |||
ture verification approach, the exploitation of multi-signature capability could | ||||
be applied. This allows not only the original content producer but also some fo | ||||
rwarders responsible for in-network recoding to have their own unique signing ke | ||||
y. Each forwarder of the group signs a newly generated NC packet in order for ot | ||||
her nodes to be able to validate the data with the signature. The CS may verify | ||||
the signature within the NC packet before storing it to avoid invalid data cachi | ||||
ng. Second, as a consumer-dependent approach, the consumer puts a restriction on | ||||
the matching rule using only the name of the requested data. The interest ambig | ||||
uity can be clarified by specifying both the name and the key identifier (the pr | ||||
oducer's public key digest) used for matching to the requested data. This KeyId | ||||
restriction is built in the CCNx design <xref target="RFC8569" format="default"/ | ||||
>. Only the requested data packet satisfying the interest with the KeyId restric | ||||
tion would be forwarded and stored in the CS, thus resulting in a reduction in t | ||||
he chances of cache poisoning. Moreover, in the CCNx design, there exists the ru | ||||
le that the CS obeys in order to avoid amplifying invalid data; if an interest h | ||||
as a KeyId restriction, the CS must not reply unless it knows that the signature | ||||
on the matching content object is correct. If the CS cannot verify the signatur | ||||
e, the interest may be treated as a cache miss and forwarded to the upstream for | ||||
warder(s). Third, as a certificate chain management approach (possibly without c | ||||
ertificate authority), some mechanism, such as <xref target="RiHopAuth" format=" | ||||
default"/>, could be used to establish a trustworthy data delivery path. This ap | ||||
proach adopts the hop-by-hop authentication mechanism, wherein the forwarding-in | ||||
tegrated hop-by-hop certificate collection is performed to provide suspension ce | ||||
rtificate chains such that the data retrieval is trustworthy.</t> | ||||
<t>Depending on the adopted caching strategy, such as cache replacement po | ||||
licies, forwarders should also take caution when storing and retaining the NC pa | ||||
ckets in the CS, as they could be targeted by cache pollution attacks. In order | ||||
to mitigate the cache pollution attacks' impact, forwarders should check the con | ||||
tent request frequencies to detect the attack and may limit requests by ignoring | ||||
some of the consecutive requests. The forwarders can then decide to apply or ch | ||||
ange to the other cache replacement mechanism.</t> | ||||
<t>The forwarders or producers require careful attention to the DoS attack | ||||
s aimed at provoking the high load of NC operations by using the interests for N | ||||
C packets. In order to mitigate such attacks, the forwarders could adopt a rate- | ||||
limiting approach. For instance, they could monitor the PIT size growth for NC p | ||||
ackets per content to detect the attacks and limit the interest arrival rate whe | ||||
n necessary. If the NC application wishes to secure an interest (considered as t | ||||
he NC actuator) in order to prevent such attacks, the application should conside | ||||
r using an encrypted wrapper and an explicit protocol. | ||||
</t> | ||||
</section> | </section> | |||
</middle> | </middle> | |||
<!-- *****BACK MATTER ***** --> | ||||
<back> | <back> | |||
<!-- References split into informative and normative --> | <references> | |||
<name>Informative References</name> | ||||
<!-- There are 2 ways to insert reference entries from the citation libraries | <reference anchor="Jacobson09"> | |||
: | <front> | |||
1. define an ENTITY at the top, and use "ampersand character"RFC2629; here ( | <title>Networking Named Content</title> | |||
as shown) | <author initials="V" surname="Jacobson" fullname="Van Jacobson"/> | |||
2. simply use a PI "less than character"?rfc include="reference.RFC.2119.xml | <author initials="D" surname="Smetters" fullname="Diana K. Smetters"/> | |||
"?> here | <author initials="J" surname="Thornton" fullname="James D. Thornton"/> | |||
(for I-Ds: include="reference.I-D.narten-iana-considerations-rfc2434bis.x | <author initials="M" surname="Plass" fullname="Michael F. Plass"/> | |||
ml") | <author initials="N" surname="Briggs" fullname="Nicholas H. Briggs"/> | |||
<author initials="R" surname="Braynard" fullname="Rebecca L. Braynard"/> | ||||
Both are cited textually in the same manner: by using xref elements. | <date month="December" year="2009"/> | |||
If you use the PI option, xml2rfc will, by default, try to find included fil | </front> | |||
es in the same | <refcontent>Proc. CoNEXT, ACM</refcontent> | |||
directory as the including file. You can also define the XML_LIBRARY environ | <seriesInfo name="DOI" value="10.1145/1658939.1658941"/> | |||
ment variable | </reference> | |||
with a value containing a set of directories to search. These can be either | ||||
in the local | ||||
filing system or remote ones accessed by http (http://domain/dir/... ).--> | ||||
<!-- | ||||
<references title="Normative References"> --> | ||||
<!--?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
.2119.xml"?--> | ||||
<!-- &RFC2119; --> | ||||
<!-- | ||||
</references> --> | ||||
<references title="Informative References"> | ||||
<!-- Here we use entities that we defined at the beginning. --> | ||||
<!-- A reference written by by an organization not a person. --> | ||||
<reference anchor="CCNxSema" target="https://tools.ietf.org/html/rfc8569 | ||||
"> | ||||
<front> | ||||
<title>Content-Centric Networking (CCNx) Semantics</title> | ||||
<author initials="M" surname="Mosko"/> | ||||
<author initials="" surname="et al."/> | ||||
<date month="July" year="2019"/> | ||||
</front> | ||||
<seriesInfo name="RFC" value="8569"/> | ||||
</reference> | ||||
<reference anchor="Gkantsidis06"> | ||||
<front> | ||||
<title>Cooperative Security for Network Coding File Distribution</title | ||||
> | ||||
<author initials="C" surname="Gkantsidis"/> | ||||
<author initials="P. R." surname="Rodriguez"/> | ||||
<date month="April" year="2006"/> | ||||
</front> | ||||
<seriesInfo name="Proc. Infocom," value="IEEE"/> | ||||
</reference> | ||||
<reference anchor="Cai02"> | ||||
<front> | ||||
<title>Secure network coding</title> | ||||
<author initials="N" surname="Cai"/> | ||||
<author initials="R. W" surname="Yeung"/> | ||||
<date month="June" year="2002"/> | ||||
</front> | ||||
<seriesInfo name="Proc. International Symposium on Information Theory (IS | ||||
IT)," value="IEEE"/> | ||||
</reference> | ||||
<reference anchor="Lima10"> | ||||
<front> | ||||
<title>Secure Network Coding for Multi-Resolution Wireless Video Stream | ||||
ing</title> | ||||
<author initials="L" surname="Lima"/> | ||||
<author initials="S" surname="Gheorghiu"/> | ||||
<author initials="J" surname="Barros"/> | ||||
<author initials="M" surname="Medard"/> | ||||
<author initials="A. T." surname="Toledo"/> | ||||
<date month="April" year="2010"/> | ||||
</front> | ||||
<seriesInfo name="IEEE Journal of Selected Area (JSAC)," value="vol. 28, | ||||
no. 3" /> | ||||
</reference> | ||||
<reference anchor="Vilela08"> | ||||
<front> | ||||
<title>Lightweight security for network coding</title> | ||||
<author initials="J.P." surname="Vilea"/> | ||||
<author initials="L" surname="Lima"/> | ||||
<author initials="J" surname="Barros"/> | ||||
<date month="May" year="2008"/> | ||||
</front> | ||||
<seriesInfo name="Proc. ICC," value="IEEE"/> | ||||
</reference> | ||||
<reference anchor="Dimarkis10"> | ||||
<front> | ||||
<title>Network Coding for Distributed Storage Systems</title> | ||||
<author initials="A" surname="Dimarkis"/> | ||||
<author initials="P" surname="Godfrey"/> | ||||
<author initials="Y" surname="Wu"/> | ||||
<author initials="M" surname="Wainwright"/> | ||||
<author initials="K" surname="Ramchandran"/> | ||||
<date month="September" year="2010"/> | ||||
</front> | ||||
<seriesInfo name="IEEE Trans. Information Theory," value="vol. 56, no.9"/ | ||||
> | ||||
</reference> | ||||
<reference anchor="Gkantsidis05"> | ||||
<front> | ||||
<title>Network coding for large scale content distribution</title> | ||||
<author initials="C" surname="Gkantsidis"/> | ||||
<author initials="P" surname="Rodriguez"/> | ||||
<date month="March" year="2005"/> | ||||
</front> | ||||
<seriesInfo name="Proc. Infocom," value="IEEE"/> | ||||
</reference> | ||||
<reference anchor="Seferoglu07"> | ||||
<front> | ||||
<title>Opportunistic Network Coding for Video Streaming over Wireless</ | ||||
title> | ||||
<author initials="H" surname="Seferoglu"/> | ||||
<author initials="A" surname="Markopoulou"/> | ||||
<date month="November" year="2007"/> | ||||
</front> | ||||
<seriesInfo name="Proc. Packet Video Workshop (PV)," value="IEEE"/> | ||||
</reference> | ||||
<reference anchor="Montpetit12"> | ||||
<front> | ||||
<title>Network Coding Meets Information-Centric Networking: An Architec | ||||
tural Case for Information Dispersion Through Native Network Coding</title> | ||||
<author initials="M.J." surname="Montpetit"/> | ||||
<author initials="C" surname="Westphal"/> | ||||
<author initials="D" surname="Trossen"/> | ||||
<date month="June" year="2012"/> | ||||
</front> | ||||
<seriesInfo name="Proc. Workshop on Emerging Name-Oriented Mobile Network | ||||
ing Design (NoM)," value="ACM"/> | ||||
</reference> | ||||
<reference anchor="Saltarin16"> | ||||
<front> | ||||
<title>NetCodCCN: a network coding approach for content-centric network | ||||
s</title> | ||||
<author initials="J" surname="Saltarin"/> | ||||
<author initials="E" surname="Bourtsoulatze"/> | ||||
<author initials="N" surname="Thomos"/> | ||||
<author initials="T" surname="Braun"/> | ||||
<date month="April" year="2016"/> | ||||
</front> | ||||
<seriesInfo name="Proc. Infocom," value="IEEE"/> | ||||
</reference> | ||||
<reference anchor="Ramakrishnan12"> | ||||
<front> | ||||
<title>Adaptive Video Streaming over CCN with Network Coding for Seamle | ||||
ss Mobility</title> | ||||
<author initials="A" surname="Ramakrishnan"/> | ||||
<author initials="C" surname="Westphal"/> | ||||
<author initials="J" surname="Saltarin"/> | ||||
<date month="December" year="2016"/> | ||||
</front> | ||||
<seriesInfo name="Proc. International Symposium on Multimedia (ISM)," val | ||||
ue="IEEE"/> | ||||
</reference> | ||||
<reference anchor="acm-mpath-cc"> | <reference anchor="Zhang14"> | |||
<front> | <front> | |||
<title>MIRCC: Multipath-aware ICN Rate-based Congestion Control</title> | <title>Named data networking</title> | |||
<author initials="M" surname="Mahdian"/> | <author initials="L" surname="Zhang" fullname="Lixia Zhang"/> | |||
<author initials="S" surname="Arianfar"/> | <author initials="A" surname="Afanasyev" fullname="Alexander Afanasyev"/> | |||
<author initials="J" surname="Gibson"/> | <author initials="J" surname="Burke" fullname="Jeffrey Burke"/> | |||
<author initials="D" surname="Oran"/> | <author initials="V" surname="Jacobson" fullname="Van Jacobson"/> | |||
<date month="September" year="2016"/> | <author initials="K" surname="Claffy" fullname="KC Claffy"/> | |||
</front> | <author initials="P" surname="Crowley" fullname="Patrick Crowley"/> | |||
<seriesInfo name="Proc. Conference on Information-Centric Networking (ICN | <author initials="C" surname="Papadopoulos" fullname="Christos Papadopoulos | |||
)," value="ACM"/> | "/> | |||
</reference> | <author initials="L" surname="Wang" fullname="Lan Wang"/> | |||
<author initials="B" surname="Zhang" fullname="Beichuan Zhang"/> | ||||
<date month="July" year="2014"/> | ||||
</front> | ||||
<refcontent>ACM SIGCOMM Computer Communication Review, vol. 44, no. 3</refcon | ||||
tent> | ||||
<seriesInfo name="DOI" value="10.1145/2656877.2656887"/> | ||||
</reference> | ||||
<reference anchor="Wang14"> | <reference anchor="Gkantsidis06"> | |||
<front> | <front> | |||
<title>An Optimal Cache Management Framework for Information-Centric Ne | <title>Cooperative Security for Network Coding File Distribution</titl | |||
tworks with Network Coding</title> | e> | |||
<author initials="J" surname="Wang"/> | <author initials="C" surname="Gkantsidis" fullname="Christos Gkantsidi | |||
<author initials="J" surname="Ren"/> | s"/> | |||
<author initials="K" surname="Lu"/> | <author initials="P" surname="Rodriguez" fullname="P. Rodriguez Rodrig | |||
<author initials="J" surname="Wang"/> | uez"/> | |||
<author initials="S" surname="Liu"/> | <date month="April" year="2006"/> | |||
<author initials="C" surname="Westphal"/> | </front> | |||
<date month="June" year="2014"/> | <refcontent>Proc. Infocom, IEEE</refcontent> | |||
</front> | <seriesInfo name="DOI" value="10.1109/INFOCOM.2006.233"/> | |||
<seriesInfo name="Proc. Networking Conference," value="IFIP/IEEE"/> | </reference> | |||
</reference> | ||||
<reference anchor="Wang16"> | <reference anchor="Cai02"> | |||
<front> | <front> | |||
<title>A Minimum Cost Cache Management Framework for Information-Centri | <title>Secure network coding</title> | |||
c Networks with Network Coding</title> | <author initials="N" surname="Cai" fullname="Ning Cai"/> | |||
<author initials="J" surname="Wang"/> | <author initials="R" surname="Yeung" fullname="Raymond W. Yeung"/> | |||
<author initials="J" surname="Ren"/> | <date month="June" year="2002"/> | |||
<author initials="K" surname="Lu"/> | </front> | |||
<author initials="J" surname="Wang"/> | <refcontent>Proc. International Symposium on Information Theory (ISIT), | |||
<author initials="S" surname="Liu"/> | IEEE</refcontent> | |||
<author initials="C" surname="Westphal"/> | <seriesInfo name="DOI" value="10.1109/ISIT.2002.1023595"/> | |||
<date month="August" year="2016"/> | </reference> | |||
</front> | ||||
<seriesInfo name="Computer Networks," value="Elsevier"/> | ||||
</reference> | ||||
<reference anchor="Matsuzono17"> | <reference anchor="Lima10"> | |||
<front> | <front> | |||
<title>Low Latency Low Loss Streaming using In-Network Coding and Cachi | <title>Secure Network Coding for Multi-Resolution Wireless Video Strea | |||
ng</title> | ming</title> | |||
<author initials="K" surname="Matsuzono"/> | <author initials="L" surname="Lima" fullname="Luisa Lima"/> | |||
<author initials="H" surname="Asaeda"/> | <author initials="S" surname="Gheorghiu" fullname="Steluta Gheorghiu"/ | |||
<author initials="T" surname="Turletti"/> | > | |||
<date month="May" year="2017"/> | <author initials="J" surname="Barros" fullname="Joao Barros"/> | |||
</front> | <author initials="M" surname="Medard" fullname="Muriel Medard"/> | |||
<seriesInfo name="Proc. Infocom," value="IEEE"/> | <author initials="A" surname="Toledo" fullname="Alberto Lopez Toledo"/ | |||
</reference> | > | |||
<date month="April" year="2010"/> | ||||
</front> | ||||
<refcontent>IEEE Journal of Selected Area (JSAC), vol. 28, no. 3</refcon | ||||
tent> | ||||
<seriesInfo name="DOI" value="10.1109/JSAC.2010.100409"/> | ||||
</reference> | ||||
<reference anchor="Jacobson09"> | <reference anchor="Vilela08"> | |||
<front> | <front> | |||
<title>Networking Named Content</title> | <title>Lightweight security for network coding</title> | |||
<author initials="V" surname="Jacobson"/> | <author initials="J" surname="Vilea" fullname="Joao P. Vilela"/> | |||
<author initials="D.K." surname="Smetters"/> | <author initials="L" surname="Lima" fullname="Luisa Lima"/> | |||
<author initials="J.D" surname="Thornton"/> | <author initials="J" surname="Barros" fullname="Joao Barros"/> | |||
<author initials="M.F" surname="Plass"/> | <date month="May" year="2008"/> | |||
<author initials="N.H." surname="Briggs"/> | </front> | |||
<author initials="R.L." surname="Braynard"/> | <refcontent>Proc. ICC, IEEE</refcontent> | |||
<date month="December" year="2009"/> | <seriesInfo name="DOI" value="10.48550/arXiv.0807.0610"/> | |||
</front> | </reference> | |||
<seriesInfo name="Proc. CoNEXT," value="ACM"/> | ||||
</reference> | ||||
<reference anchor="CCNxTerm" target="https://tools.ietf.org/html/rfc8793"> | <reference anchor="Koetter03"> | |||
<front> | <front> | |||
<title>Information-Centric Networking (ICN): Content-Centric Networking | <title>An Algebraic Approach to Network Coding</title> | |||
(CCNx) and Named Data Networking (NDN) Terminology</title> | <author initials="R" surname="Koetter" fullname="Ralf Koetter"/> | |||
<author initials="B" surname="Wissingh"/> | <author initials="M" surname="Medard" fullname="Muriel Medard"/> | |||
<author initials="" surname="et al."/> | <date month="October" year="2003"/> | |||
<date month="June" year="2020"/> | </front> | |||
</front> | <refcontent>IEEE/ACM Transactions on Networking, vol. 11, no. 5</refcon | |||
<seriesInfo name="RFC" value="8793"/> | tent> | |||
</reference> | <seriesInfo name="DOI" value="10.1109/TNET.2003.818197"/> | |||
</reference> | ||||
<reference anchor="CCNxMsg" target="https://tools.ietf.org/html/rfc8609"> | <reference anchor="Vyetrenko09"> | |||
<front> | <front> | |||
<title>Content-Centric Networking (CCNx) Messages in TLV Format</title> | <title>Rate regions for coherent and noncoherent multisource network | |||
<author initials="M" surname="Mosko"/> | error correction</title> | |||
<author initials="" surname="et al."/> | <author initials="S" surname="Vyetrenko" fullname="Svitlana Vyetrenko | |||
<date month="July" year="2019"/> | "/> | |||
</front> | <author initials="T" surname="Ho" fullname="Tracey Ho"/> | |||
<seriesInfo name="RFC" value="8609"/> | <author initials="M" surname="Effros" fullname="Michelle Effros"/> | |||
</reference> | <author initials="J" surname="Kliewer" fullname="Joerg Kliewer"/> | |||
<author initials="E" surname="Erez" fullname="Elona Erez"/> | ||||
<date month="June" year="2009"/> | ||||
</front> | ||||
<refcontent>Proc. International Symposium on Information Theory (ISIT), | ||||
IEEE</refcontent> | ||||
<seriesInfo name="DOI" value="10.1109/ISIT.2009.5206077"/> | ||||
</reference> | ||||
<reference anchor="Zhang14"> | <reference anchor="Wu04"> | |||
<front> | <front> | |||
<title>Named data networking</title> | <title>A comparison of network coding and tree packing</title> | |||
<author initials="L" surname="Zhang"/> | <author initials="Y" surname="Wu" fullname="Yunnan Wu"/> | |||
<author initials="A" surname="Afanasyev"/> | <author initials="P" surname="Chou" fullname="Philip A. Chou"/> | |||
<author initials="J" surname="Burke"/> | <author initials="K" surname="Jain" fullname="Kamal Jain"/> | |||
<author initials="V" surname="Jacobson"/> | <date month="June" year="2004"/> | |||
<author initials="K" surname="Claffy"/> | </front> | |||
<author initials="P" surname="Crowley"/> | <refcontent>Proc. International Symposium on Information Theory (ISIT), | |||
<author initials="C" surname="Papadopoulos"/> | IEEE</refcontent> | |||
<author initials="L" surname="Wang"/> | <seriesInfo name="DOI" value="10.1109/ISIT.2004.1365182"/> | |||
<author initials="B" surname="Zhang"/> | </reference> | |||
<date month="July" year="2014"/> | ||||
</front> | ||||
<seriesInfo name="ACM Comput. Commun. Rev.," value="vol. 44, no. 3"/> | ||||
</reference> | ||||
<!-- | <reference anchor="Ho06"> | |||
<reference anchor="NDNPacket" target="https://named-data.net/doc/NDN-packet | <front> | |||
-spec/current/"> | <title>A Random Linear Network Coding Approach to Multicast</title> | |||
<front> | <author initials="T" surname="Ho" fullname="Tracey Ho"/> | |||
<title>NDN Packet Format Specification 0.3 documentation</title> | <author initials="M" surname="Medard" fullname="Muriel Medard"/> | |||
<author initials="" surname="NDN Packet Format"/> | <author initials="R" surname="Koetter" fullname="Ralf Koetter"/> | |||
<date month="Sept." year="2019"/> | <author initials="D" surname="Karger" fullname="David Karger"/> | |||
</front> | <author initials="M" surname="Effros" fullname="Michelle Effros"/> | |||
</reference> | <author initials="J" surname="Shi" fullname="Jun Shi"/> | |||
<author initials="B" surname="Leong" fullname="Ben Leong"/> | ||||
<date month="October" year="2006"/> | ||||
</front> | ||||
<refcontent>IEEE Trans. on Information Theory, vol. 52, no. 10</refcont | ||||
ent> | ||||
<seriesInfo name="DOI" value="10.1109/TIT.2006.881746"/> | ||||
</reference> | ||||
<reference anchor="Koetter03"> | <reference anchor="Dimarkis10"> | |||
<front> | <front> | |||
<title>An Algebraic Approach to Network Coding</title> | <title>Network Coding for Distributed Storage Systems</title> | |||
<author initials="R" surname="Koetter"/> | <author initials="A" surname="Dimarkis" fullname="Alexandros G. Dimaki | |||
<author initials="M" surname="Medard"/> | s"/> | |||
<date month="Oct." year="2003"/> | <author initials="P" surname="Godfrey" fullname="P. Brighten Godfrey"/ | |||
</front> | > | |||
<seriesInfo name="IEEE/ACM Trans. on Networking," value="vol. 11, no 5"/> | <author initials="Y" surname="Wu" fullname="Yunnan Wu"/> | |||
</reference> | <author initials="M" surname="Wainwright" fullname="Martin J. Wainwrig | |||
ht"/> | ||||
<author initials="K" surname="Ramchandran" fullname="Kannan Ramchandra | ||||
n"/> | ||||
<date month="September" year="2010"/> | ||||
</front> | ||||
<refcontent>IEEE Trans. Information Theory, vol. 56, no.9</refcontent> | ||||
<seriesInfo name="DOI" value="10.1109/TIT.2010.2054295"/> | ||||
</reference> | ||||
<reference anchor="I-D.irtf-nwcrg-network-coding-taxonomy" target="https:// | <reference anchor="Gkantsidis05"> | |||
tools.ietf.org/html/rfc8406"> | <front> | |||
<front> | <title>Network coding for large scale content distribution</title> | |||
<title>Taxonomy of Coding Techniques for Efficient Network Communicatio | <author initials="C" surname="Gkantsidis" fullname="Christos Gkantsidi | |||
ns</title> | s"/> | |||
<author initials="B" surname="Adamson"/> | <author initials="P" surname="Rodriguez" fullname="Pablo Rodriguez"/> | |||
<author initials="" surname="et al."/> | <date month="March" year="2005"/> | |||
<date month="June" year="2018"/> | </front> | |||
</front> | <refcontent>Proc. Infocom, IEEE</refcontent> | |||
<seriesInfo name="RFC" value="8406"/> | <seriesInfo name="DOI" value="10.1109/INFCOM.2005.1498511"/> | |||
</reference> | </reference> | |||
<reference anchor="Draft-NWC-CC"> | <reference anchor="Seferoglu07"> | |||
<front> | <front> | |||
<title>Coding and Congestion Control in Transport</title> | <title>Opportunistic Network Coding for Video Streaming over Wireless< | |||
<author initials="N" surname="Kuhn"/> | /title> | |||
<author initials="E" surname="Lochin"/> | <author initials="H" surname="Seferoglu" fullname="Hulya Seferoglu"/> | |||
<author initials="F" surname="Michel"/> | <author initials="A" surname="Markopoulou" fullname="Athina Markopoulo | |||
<author initials="M" surname="Welzl"/> | u"/> | |||
<date month="June" year="2021"/> | <date month="November" year="2007"/> | |||
</front> | </front> | |||
<seriesInfo name="Work in Progress," value="draft-irtf-nwcrg-coding-and-c | <refcontent>Proc. Packet Video Workshop (PV), IEEE</refcontent> | |||
ongestion-09"/> | <seriesInfo name="DOI" value="10.1109/PACKET.2007.4397041"/> | |||
</reference> | </reference> | |||
<reference anchor="Draft-FLIC"> | <reference anchor="Montpetit12"> | |||
<front> | <front> | |||
<title>File-Like ICN Collections (FLIC)</title> | <title>Network Coding Meets Information-Centric Networking: An Archite | |||
<author initials="C" surname="Tschudin"/> | ctural Case for Information Dispersion Through Native Network Coding</title> | |||
<author initials="C" surname="Wood"/> | <author initials="M" surname="Montpetit" fullname="Marie-Jose Montpeti | |||
<author initials="M" surname="Mosko"/> | t"/> | |||
<author initials="D" surname="Oran"/> | <author initials="C" surname="Westphal" fullname="Cedric Westphal"/> | |||
<date month="Nov." year="2021"/> | <author initials="D" surname="Trossen" fullname="Dirk Trossen"/> | |||
</front> | <date month="June" year="2012"/> | |||
<seriesInfo name="Work in Progress," value="draft-irtf-icnrg-flic-03"/> | </front> | |||
</reference> | <refcontent>Proc. Workshop on Emerging Name-Oriented Mobile Networking D | |||
esign (NoM), ACM</refcontent> | ||||
<seriesInfo name="DOI" value="10.1145/2248361.2248370"/> | ||||
</reference> | ||||
<reference anchor="RFC7927"> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.840 | |||
<front> | 6.xml"/> | |||
<title> Information-Centric Networking (ICN) Research Challenges</title | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.879 | |||
> | 3.xml"/> | |||
<author initials="D" surname="Kutscher"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.856 | |||
<author initials="" surname="et al."/> | 9.xml"/> | |||
<date month="July" year="2016"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.860 | |||
</front> | 9.xml"/> | |||
<seriesInfo name="RFC" value="7927"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.792 | |||
</reference> | 7.xml"/> | |||
<reference anchor="RFC7945"> | <reference anchor="Wu16"> | |||
<front> | <front> | |||
<title> Information-Centric Networking: Evaluation and Security Conside | <title>Privacy-Aware Multipath Video Caching for Content-Centric Netwo | |||
rations</title> | rks</title> | |||
<author initials="K" surname="Pentikousis"/> | <author initials="Q" surname="Wu" fullname="Qinghua Wu"/> | |||
<author initials="" surname="et al."/> | <author initials="Z" surname="Li" fullname="Zhenyu Li"/> | |||
<date month="July" year="2019"/> | <author initials="G" surname="Tyson" fullname="Gareth Tyson"/> | |||
</front> | <author initials="S" surname="Uhlig" fullname="Steve Uhlig"/> | |||
<seriesInfo name="RFC" value="7945"/> | <author initials="M" surname="Kaafar" fullname="Mohamed Ali Kaafar"/> | |||
</reference> | <author initials="G" surname="Xie" fullname="Gaogang Xie"/> | |||
<date month="June" year="2016"/> | ||||
</front> | ||||
<refcontent>IEEE Journal on Selected Areas in Communications (JSAC), vol | ||||
. 38, no. 8</refcontent> | ||||
<seriesInfo name="DOI" value="10.1109/JSAC.2016.2577321"/> | ||||
</reference> | ||||
<reference anchor="RFC6363"> | <reference anchor="Saltarin16"> | |||
<front> | <front> | |||
<title> Forward Error Correction (FEC) Framework</title> | <title>NetCodCCN: a network coding approach for content-centric networ | |||
<author initials="M" surname="Watson"/> | ks</title> | |||
<author initials="" surname="et al."/> | <author initials="J" surname="Saltarin" fullname="Jonnahtan Saltarin"/ | |||
<date month="Oct." year="2011"/> | > | |||
</front> | <author initials="E" surname="Bourtsoulatze" fullname="Eirina Bourtsou | |||
<seriesInfo name="RFC" value="6363"/> | latze"/> | |||
</reference> | <author initials="N" surname="Thomos" fullname="Nikolaos Thomos"/> | |||
<author initials="T" surname="Braun" fullname="Torsten Braun"/> | ||||
<date month="April" year="2016"/> | ||||
</front> | ||||
<refcontent>Proc. Infocom, IEEE</refcontent> | ||||
<seriesInfo name="DOI" value="10.1109/INFOCOM.2016.7524382"/> | ||||
</reference> | ||||
<reference anchor="Thomos12"> | <reference anchor="Wang14"> | |||
<front> | <front> | |||
<title>Toward one Symbol Network Coding Vectors</title> | <title>An Optimal Cache Management Framework for Information-Centric N | |||
<author initials="N" surname="Thomos"/> | etworks with Network Coding</title> | |||
<author initials="P" surname="Frossard"/> | <author initials="J" surname="Wang" fullname="Jin Wang"/> | |||
<date month="November" year="2012"/> | <author initials="J" surname="Ren" fullname="Jing Ren"/> | |||
</front> | <author initials="K" surname="Lu" fullname="Kejie Lu"/> | |||
<seriesInfo name="IEEE Communications letters," value="vol. 16, no. 11"/> | <author initials="J" surname="Wang" fullname="Jianping Wang"/> | |||
</reference> | <author initials="S" surname="Liu" fullname="Shucheng Liu"/> | |||
<author initials="C" surname="Westphal" fullname="Cedric Westphal"/> | ||||
<date month="June" year="2014"/> | ||||
</front> | ||||
<refcontent>Proc. Networking Conference, IFIP/IEEE</refcontent> | ||||
<seriesInfo name="DOI" value="10.1109/IFIPNetworking.2014.6857127"/> | ||||
</reference> | ||||
<reference anchor="Lucani14"> | <reference anchor="Wang16"> | |||
<front> | <front> | |||
<title>Fulcrum Network Codes: A Code for Fluid Allocation of Complexity | <title>A Minimum Cost Cache Management Framework for Information-Centr | |||
</title> | ic Networks with Network Coding</title> | |||
<author initials="D.E" surname="Lucani"/> | <author initials="J" surname="Wang" fullname="Jin Wang"/> | |||
<author initials="M.V." surname="Pedersen"/> | <author initials="J" surname="Ren" fullname="Jing Ren"/> | |||
<author initials="J" surname="Heide"/> | <author initials="K" surname="Lu" fullname="Kejie Lu"/> | |||
<author initials="F.H.P" surname="Fitzek"/> | <author initials="J" surname="Wang" fullname="Jianping Wang"/> | |||
<date month="April" year="2014"/> | <author initials="S" surname="Liu" fullname="Shucheng Liu"/> | |||
</front> | <author initials="C" surname="Westphal" fullname="Cedric Westphal"/> | |||
<seriesInfo name="" value="available at http://arxiv.org/abs/1404.6620"/> | <date month="August" year="2016"/> | |||
</reference> | </front> | |||
<refcontent>Computer Networks, Elsevier</refcontent> | ||||
<seriesInfo name="DOI" value="10.1016/j.comnet.2016.08.004"/> | ||||
</reference> | ||||
<reference anchor="Perino11"> | <reference anchor="Ramakrishnan12"> | |||
<front> | <front> | |||
<title>A reality check for content centric networking</title> | <title>Adaptive Video Streaming over CCN with Network Coding for Seaml | |||
<author initials="D" surname="Perino"/> | ess Mobility</title> | |||
<author initials="M" surname="Varvello"/> | <author initials="A" surname="Ramakrishnan" fullname="Abinesh Ramakris | |||
<date month="August" year="2011"/> | hnan"/> | |||
</front> | <author initials="C" surname="Westphal" fullname="Cedric Westphal"/> | |||
<seriesInfo name="Proc. SIGCOMM Workshop on Information-centric networki | <author initials="J" surname="Saltarin" fullname="Jonnahtan Saltarin"/ | |||
ng (ICN'11)," value="ACM"/> | > | |||
</reference> | <date month="December" year="2016"/> | |||
</front> | ||||
<refcontent>Proc. International Symposium on Multimedia (ISM), IEEE</ref | ||||
content> | ||||
<seriesInfo name="DOI" value="10.1109/ISM.2016.0054"/> | ||||
</reference> | ||||
<reference anchor="Wu16"> | <reference anchor="Carofiglio16"> | |||
<front> | <front> | |||
<title>Privacy-Aware Multipath Video Caching for Content-Centric Networ | <title>Leveraging ICN In-network Control for Loss Detection and Recov | |||
ks</title> | ery in Wireless Mobile networks</title> | |||
<author initials="Q" surname="Wu"/> | <author initials="G" surname="Carofiglio" fullname="Giovanna Carofigl | |||
<author initials="Z" surname="Li"/> | io"/> | |||
<author initials="G" surname="Tyson"/> | <author initials="L" surname="Muscariello" fullname="Luca Muscariello | |||
<author initials="S" surname="Uhlig"/> | "/> | |||
<author initials="M.A." surname="Kaafar"/> | <author initials="M" surname="Papalini" fullname="Michele Papalini"/> | |||
<author initials="G" surname="Xie"/> | <author initials="N" surname="Rozhnova" fullname="Natalya Rozhnova"/> | |||
<date month="June" year="2016"/> | <author initials="X" surname="Zeng" fullname="Xuan Zeng"/> | |||
</front> | <date month="September" year="2016"/> | |||
<seriesInfo name="IEEE Journal of Selected Area (JSAC)" value="vol. 38, n | </front> | |||
o. 8"/> | <refcontent>Proc. of the 3rd ACM Conference on Information-Centric Netw | |||
</reference> | orking</refcontent> | |||
<seriesInfo name="DOI" value="10.1145/2984356.2984361"/> | ||||
</reference> | ||||
<reference anchor="RiHopAuth"> | <reference anchor="Matsuzono17"> | |||
<front> | <front> | |||
<title>DCAuth: Data-Centric Authentication for Secure In-Network Big-Da | <title>Low Latency Low Loss Streaming using In-Network Coding and Cac | |||
ta Retrieval</title> | hing</title> | |||
<author initials="R" surname="Li"/> | <author initials="K" surname="Matsuzono" fullname="Kazuhisa Matsuzono | |||
<author initials="H" surname="Asaeda"/> | "/> | |||
<author initials="J" surname="Wu"/> | <author initials="H" surname="Asaeda" fullname="Hitoshi Asaeda"/> | |||
<date month="September" year="2018"/> | <author initials="T" surname="Turletti" fullname="Thierry Turletti"/> | |||
</front> | <date month="May" year="2017"/> | |||
<seriesInfo name="IEEE Trans. on Network Science and Engineering" value=" | </front> | |||
vol. 7, no. 1" /> | <refcontent>Proc. Infocom, IEEE</refcontent> | |||
</reference> | <seriesInfo name="DOI" value="10.1109/INFOCOM.2017.8057026"/> | |||
</reference> | ||||
<reference anchor="Wu04"> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.63 | |||
<front> | 63.xml"/> | |||
<title>A comparison of network coding and tree packing</title> | ||||
<author initials="Y" surname="Wu"/> | ||||
<author initials="P.A" surname="Chou"/> | ||||
<author initials="K" surname="Jain"/> | ||||
<date month="June" year="2004"/> | ||||
</front> | ||||
<seriesInfo name="Proc. ISIT," value="IEEE"/> | ||||
</reference> | ||||
<reference anchor="Ho06"> | <reference anchor="Thomos12"> | |||
<front> | <front> | |||
<title>A Random Linear Network Coding Approach to Multicast</title> | <title>Toward One Symbol Network Coding Vectors</title> | |||
<author initials="T" surname="Ho"/> | <author initials="N" surname="Thomos" fullname="Nikolaos Thomos"/> | |||
<author initials="M" surname="Medard"/> | <author initials="P" surname="Frossard" fullname="Pascal Frossard"/> | |||
<author initials="R" surname="Koetter"/> | <date month="November" year="2012"/> | |||
<author initials="R" surname="Karger"/> | ||||
<author initials="D.R." surname="Effros"/> | ||||
<author initials="M" surname="Shi"/> | ||||
<author initials="B" surname="Leong"/> | ||||
<date month="October" year="2006"/> | ||||
</front> | </front> | |||
<seriesInfo name="IEEE Trans. Information Theory," value="vol. 52, no.1 | <refcontent>IEEE Communications Letters, vol. 16, no. 11</refcontent> | |||
0"/> | <seriesInfo name="DOI" value="10.1109/LCOMM.2012.092812.121661"/> | |||
</reference> | </reference> | |||
<reference anchor="Podlipnig03"> | <reference anchor="Lucani14"> | |||
<front> | <front> | |||
<title>A Survey of Web Cache Replacement Strategies</title> | <title>Fulcrum Network Codes: A Code for Fluid Allocation of Complexi | |||
<author initials="S" surname="Podlipnig"/> | ty</title> | |||
<author initials="L.B" surname="Osz"/> | <author initials="D" surname="Lucani" fullname="Daniel E. Lucani"/> | |||
<date month="December" year="2003"/> | <author initials="M" surname="Pedersen" fullname="Morten V. Pedersen" | |||
</front> | /> | |||
<seriesInfo name="Proc. ACM Computing Surveys" value="vol. 35, no. 4"/> | <author initials="D" surname="Ruano" fullname="Diego Ruano"/> | |||
</reference> | <author initials="C" surname="Sørensen" fullname="Chres W. Sørensen"/> | |||
<author initials="J" surname="Heide" fullname="Janus Heide"/> | ||||
<author initials="F" surname="Fitzek" fullname="Frank H. P. Fitzek"/> | ||||
<author initials="O" surname="Geil" fullname="Olav Geil"/> | ||||
<date month="April" year="2014"/> | ||||
</front> | ||||
<seriesInfo name="DOI" value="10.48550/arXiv.1404.6620"/> | ||||
</reference> | ||||
<reference anchor="Rossini13"> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.i | |||
<front> | rtf-icnrg-flic.xml"/> | |||
<title>Evaluating CCN multi-path interest forwarding strategies</title> | ||||
<author initials="G" surname="Rossini"/> | ||||
<author initials="D" surname="Rossi"/> | ||||
<date month="April" year="2013"/> | ||||
</front> | ||||
<seriesInfo name="Elsevier Computer Communication," value="vol.36, no. 7" | ||||
/> | ||||
</reference> | ||||
<!-- | <reference anchor="Ali16"> | |||
<reference anchor="Chai12"> | <front> | |||
<front> | <title>Coding for Caching: Fundamental Limits and Practical Challenge | |||
<title>Cache Less for More in Information-centric Networks</title> | s</title> | |||
<author initials="W.K." surname="Chai"/> | <author initials="M" surname="Maddah-Ali" fullname="Mohammad Ali Madd | |||
<author initials="D" surname="He"/> | ah-Ali"/> | |||
<author initials="I" surname="Psaras"/> | <author initials="U" surname="Niesen" fullname="Urs Niesen"/> | |||
<author initials="G" surname="Pavlou"/> | <date month="August" year="2016"/> | |||
<date month="April" year="2013"/> | </front> | |||
</front> | <refcontent>IEEE Communications Magazine, vol. 54, no. 8</refcontent> | |||
<seriesInfo name="Journal Computer Communications," value="vol. 37. no. 7 | <seriesInfo name="DOI" value="10.1109/MCOM.2016.7537173"/> | |||
"/> | </reference> | |||
</reference> --> | ||||
<reference anchor="Carofiglio16"> | <reference anchor="Perino11"> | |||
<front> | <front> | |||
<title>Leveraging ICN In-network Control for Loss Detection and Rec | <title>A reality check for content centric networking</title> | |||
overy in Wireless Mobile networks</title> | <author initials="D" surname="Perino" fullname="Diego Perino"/> | |||
<author initials="G" surname="Carofiglio"/> | <author initials="M" surname="Varvello" fullname="Matteo Varvello"/> | |||
<author initials="L" surname="Muscariello"/> | <date month="August" year="2011"/> | |||
<author initials="M" surname="Papalini"/> | ||||
<author initials="N" surname="Rozhnova"/> | ||||
<author initials="X" surname="Zeng"/> | ||||
<date month="September" year="2016"/> | ||||
</front> | </front> | |||
<seriesInfo name="Proc. ICN" value="ACM"/> | <refcontent>Proc. SIGCOMM Workshop on Information-centric networking (I | |||
</reference> | CN '11), ACM</refcontent> | |||
<seriesInfo name="DOI" value="10.1145/2018584.2018596"/> | ||||
</reference> | ||||
<reference anchor="Ali16"> | <reference anchor="Podlipnig03"> | |||
<front> | <front> | |||
<title>Coding for Caching: Fundamental Limits and Practical Challen | <title>A Survey of Web Cache Replacement Strategies</title> | |||
ges</title> | <author initials="S" surname="Podlipnig" fullname="Stefan Podlipnig"/ | |||
<author initials="M" surname="Ali"/> | > | |||
<author initials="U" surname="Niesen"/> | <author initials="L" surname="Böszörmenyi" fullname="Laszlo Böszörmen | |||
<date month="August" year="2016"/> | yi"/> | |||
<date month="December" year="2003"/> | ||||
</front> | </front> | |||
<seriesInfo name="IEEE Communications Magazine" value="vol. 54, no. 8"/ | <refcontent>Proc. ACM Computing Surveys, vol. 35, no. 4</refcontent> | |||
> | <seriesInfo name="DOI" value="10.1145/954339.954341"/> | |||
</reference> | </reference> | |||
<reference anchor="Koetter08"> | <reference anchor="Rossini13"> | |||
<front> | <front> | |||
<title>An algebraic approach to network coding</title> | <title>Evaluating CCN multi-path interest forwarding strategies</titl | |||
<author initials="R" surname="Koetter"/> | e> | |||
<author initials="F.R" surname="Kschischang"/> | <author initials="G" surname="Rossini" fullname="Giuseppe Rossini"/> | |||
<date month="October" year="2003"/> | <author initials="D" surname="Rossi" fullname="Dario Rossi"/> | |||
</front> | <date month="April" year="2013"/> | |||
<seriesInfo name="IEEE Trans. Netw." value="vol.11, no.5"/> | </front> | |||
</reference> | <refcontent>Elsevier Computer Communications, vol. 36, no. 7</refconten | |||
t> | ||||
<seriesInfo name="DOI" value="10.1016/j.comcom.2013.01.008"/> | ||||
</reference> | ||||
<reference anchor="Vyetrenko09"> | <reference anchor="acm-mpath-cc"> | |||
<front> | <front> | |||
<title>Rate regions for coherent and noncoherent multisource network er | <title>MIRCC: Multipath-aware ICN Rate-based Congestion Control</title | |||
ror correction</title> | > | |||
<author initials="S" surname="Vyetrenko"/> | <author initials="M" surname="Mahdian"/> | |||
<author initials="T" surname="Ho"/> | <author initials="S" surname="Arianfar"/> | |||
<author initials="M" surname="Effros"/> | <author initials="J" surname="Gibson"/> | |||
<author initials="J" surname="Kliewer"/> | <author initials="D" surname="Oran"/> | |||
<author initials="E" surname="Erez"/> | <date month="September" year="2016"/> | |||
<date month="July" year="2009"/> | </front> | |||
</front> | <refcontent>Proc. Conference on Information-Centric Networking (ICN), AC | |||
<seriesInfo name="Proc. International Symposium on Information Theory (IS | M</refcontent> | |||
IT)," value="IEEE"/> | <seriesInfo name="DOI" value="10.1145/2984356.2984365"/> | |||
</reference> | </reference> | |||
<reference anchor="Pierre11"> | <reference anchor="Pierre11"> | |||
<front> | <front> | |||
<title>On-the-Fly Erasure Coding for Real-Time Video Applications</titl | <title>On-the-Fly Erasure Coding for Real-Time Video Applications</title> | |||
e> | <author initials="P" surname="Tournoux" fullname="Pierre Ugo Tournoux"/> | |||
<author initials="P.U" surname="Tournoux"/> | <author initials="E" surname="Lochin" fullname="Emmanuel Lochin"/> | |||
<author initials="E" surname="Lochin"/> | <author initials="J" surname="Lacan" fullname="Jérôme Lacan"/> | |||
<author initials="J" surname="Lacan"/> | <author initials="A" surname="Bouabdallah" fullname="Amine Bouabdallah"/> | |||
<author initials="A" surname="Bouabdallah"/> | <author initials="V" surname="Roca" fullname="Vincent Roca"/> | |||
<author initials="V" surname="Roca"/> | <date month="August" year="2011"/> | |||
<date month="August" year="2011"/> | </front> | |||
</front> | <refcontent>IEEE Transactions on Multimedia, vol. 13, no. 4</refcontent> | |||
<seriesInfo name="IEEE Trans. Multimeda" value="vol.13, no.4"/> | <seriesInfo name="DOI" value="10.1109/TMM.2011.2126564"/> | |||
</reference> | </reference> | |||
</references> | ||||
<!-- Change Log | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.926 5.xml"/> | |||
v00 2006-03-15 EBD Initial version | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.794 5.xml"/> | |||
v01 2006-04-03 EBD Moved PI location back to position 1 - | <reference anchor="RiHopAuth"> | |||
v3.1 of XMLmind is better with them at this location. | <front> | |||
v02 2007-03-07 AH removed extraneous nested_list attribute, | <title>DCAuth: Data-Centric Authentication for Secure In-Network Big-D | |||
other minor corrections | ata Retrieval</title> | |||
v03 2007-03-09 EBD Added comments on null IANA sections and fixed heading cap | <author initials="R" surname="Li" fullname="Ruidong Li"/> | |||
italization. | <author initials="H" surname="Asaeda" fullname="Hitoshi Asaeda"/> | |||
Modified comments around figure to reflect non-implementati | <author initials="J" surname="Wu" fullname="Jie Wu"/> | |||
on of | <date month="September" year="2018"/> | |||
figure indent control. Put in reference using anchor="DOMI | </front> | |||
NATION". | <refcontent>IEEE Trans. on Network Science and Engineering, vol. 7, no. | |||
Fixed up the date specification comments to reflect current | 1</refcontent> | |||
truth. | <seriesInfo name="DOI" value="10.1109/TNSE.2018.2872049"/> | |||
v04 2007-03-09 AH Major changes: shortened discussion of PIs, | </reference> | |||
added discussion of rfc include. | ||||
v05 2007-03-10 EBD Added preamble to C program example to tell about ABNF and | ||||
alternative | ||||
images. Removed meta-characters from comments (causes probl | ||||
ems). | ||||
v06 2010-04-01 TT Changed ipr attribute values to latest ones. Changed date | </references> | |||
to | <section numbered="false" toc="default"> | |||
year only, to be consistent with the comments. Updated the | <name>Acknowledgments</name> | |||
IANA guidelines reference from the I-D to the finished RFC. | <t>The authors would like to thank ICNRG and NWCRG members, especially <co | |||
--> | ntact fullname="Marie-Jose Montpetit"/>, <contact fullname="David Oran"/>, <cont | |||
act fullname="Vincent Roca"/>, and <contact fullname="Thierry Turletti "/>, for | ||||
their valuable comments and suggestions on this document.</t> | ||||
</section> | ||||
</back> | </back> | |||
</rfc> | </rfc> | |||
End of changes. 82 change blocks. | ||||
1755 lines changed or deleted | 1172 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |