Internet DRAFT - draft-montpetit-dynamic-nc
draft-montpetit-dynamic-nc
IRTF Network Coding Working Group M. Montpetit
Internet-Draft MIT
Intended status: Experimental V. Roca
Expires: September 10, 2015 INRIA
J. Detchart
ISAE
March 9, 2015
Dynamic Network Coding
draft-montpetit-dynamic-nc-00
Abstract
This document presents a network coding approach that allows coding
decisions to be based on the instantaneous conditions at the network
nodes. It uses dynamic rates and coefficients to constantly adapt to
local conditions and to allow for provider and application
differentiation.
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on September 10, 2015.
Copyright Notice
Copyright (c) 2015 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
Montpetit, et al. Expires September 10, 2015 [Page 1]
Internet-Draft Dynamic Network Coding March 2015
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Requirements Language . . . . . . . . . . . . . . . . . . . . 3
3. Definitions, Notations and Abbreviations . . . . . . . . . . 3
3.1. Definitions . . . . . . . . . . . . . . . . . . . . . . . 3
3.2. Notations . . . . . . . . . . . . . . . . . . . . . . . . 4
3.3. Abbreviations . . . . . . . . . . . . . . . . . . . . . . 4
4. Dynamic Network Coding (DNC) Principles . . . . . . . . . . . 5
4.1. About the Use of Timestamps in DNC . . . . . . . . . . . 5
4.2. About the FEC Encoding ID, Codepoint and Coding Decisions 6
5. Dynamic Network Coding (DNC) Procedures . . . . . . . . . . . 6
5.1. Input Symbol Creation . . . . . . . . . . . . . . . . . . 6
5.2. Other Procedures TBD . . . . . . . . . . . . . . . . . . 7
6. Application of Dynamic Network Coding to Various Use-cases . 7
6.1. Single Flow, Single Source, End-to-end, Single Path or
Multi Paths Use-Case . . . . . . . . . . . . . . . . . . 8
6.1.1. Example of DNC Implementation for this Use-Case . . . 8
6.2. Single Flow with In-network Re-Coding . . . . . . . . . . 10
6.3. Other Use Cases . . . . . . . . . . . . . . . . . . . . . 11
7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 11
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11
9. Security Considerations . . . . . . . . . . . . . . . . . . . 11
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 11
10.1. Normative References . . . . . . . . . . . . . . . . . . 11
10.2. Informative References . . . . . . . . . . . . . . . . . 11
Appendix A. Appendix: IPR aspects . . . . . . . . . . . . . . . 12
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12
1. Introduction
Network Coding has proven to be an efficient mechanism to provide
increased quality of experience for applications depending on
Internet Protocols. Current implementations, be them end-to-end or
hop-by-hop, depend on a global decision on the type and applicability
of the code. However, the heterogeneous nature of IP networks, the
differences between transported traffics and the rise of Information
Centric Networks (ICN) and multiple in network caches require to
define alternatives to current solutions.
Dynamic Network Coding (DNC) intends to use the characteristics of
the rising Internet traffic (Internet of Things, streaming,
progressive downloads etc.), the use of in-network caching
opportunities, customer and policy management and the changing
Montpetit, et al. Expires September 10, 2015 [Page 2]
Internet-Draft Dynamic Network Coding March 2015
dynamics on wireless links. These characteristics will be used to
adapt the network coding scheme, rate and coefficients to provide
adaptive behavior, differentiation and varying quality of experience.
In addition, it will also allow to support emerging Internet
Architectures such as the ICN that are considering network coding
solutions [ICN].
This draft provides the basic elements of such a dynamic code.
2. Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [RFC2119].
3. Definitions, Notations and Abbreviations
3.1. Definitions
This document uses the following definitions, that are mostly
inspired from from [RFC5052], [RFC6363].
-- Editor's note: most of the definitions should be moved to the
future NC Architectural document. --
Input Symbol: a unit of data that is provided as an input to the
coding process, in a given coding node. It may be a source symbol
or an already encoded repair symbol
Output Symbol: a unit of data that is produced as an output of the
coding process, in a given coding node
Source Symbol: an original unit of data, before any coding process
is applied
Repair Symbol: an Output Symbol that is not a Source Symbol
Code Rate: the ratio between the number of Input Symbols and the
number of Output Symbols at given coding node. The Code Rate
belongs to a ]0; 1] interval. A Code Rate close to 1 indicates
that a small number of Output Symbols have been produced during
the encoding process
Systematic Code: NC code in which the Source Symbols are part of
the Output Symbols
Montpetit, et al. Expires September 10, 2015 [Page 3]
Internet-Draft Dynamic Network Coding March 2015
DNC Packet: a packet (e.g., carried as the payload of a UDP
datagram) containing a given Output Symbol plus its associated DNC
header.
Packet Erasure Channel: a communication path where packets are
either dropped (e.g., by a congested router or because the number
of transmission errors exceeds the correction capabilities of the
physical layer codes) or received. When a packet is received, it
is assumed that this packet is not corrupted
To Be Completed
-- Editor's note: Should we consider the possibility of having
several symbols per packet? The DNC packet should be updated
accordingly in that case. --
3.2. Notations
This document uses the following notations:
CR denotes the Code Rate
To Be Completed
3.3. Abbreviations
This document uses the following abbreviations:
The following definitions are compatible with the FECFRAME
framework [RFC6363] and the NC architecture (COMMENT: reference to
be added when available).
NC: Network Coding
DNC: Dynamic Network Coding
PRNG: Pseudo-Random Number Generator
TS: Time Stamp
ESI: Encoding Symbol ID
To Be Completed
Montpetit, et al. Expires September 10, 2015 [Page 4]
Internet-Draft Dynamic Network Coding March 2015
4. Dynamic Network Coding (DNC) Principles
Network Coding is based on the linear combination of a number of
input symbols (at least 1) into a number of output symbols (at least
1), between the ingress and egress of the network. Several such
encoding operations can happen in case of in-network re-coding, or
there can be a single encoding operation, especially when it is
applied end-to-end. In the RLNC [RLNC], Tetrys
[I-D.detchart-nwcrg-tetrys], and Dragoncast [I-D.adjih-dragoncast]
instances of Network Coding, the linear combination consists in
applying a set of coding coefficients to each input symbol of the
current encoding window. Here the coding vectors are chosen in a
deterministic manner at each encoding node, for instance based on
local criteria, or are generated using a PRNG seed chosen locally and
carried along with the output symbol.
The DNC proposal extends this process as follows: the set of coding
coefficients is determined based on the FEC_Encoding ID, Codepoint,
and TS header fields of the various input packets present in the
encoding window, plus the local time. The coding decision therefore
depends on time, among other pieces of information.
4.1. About the Use of Timestamps in DNC
Each DNC Packet contains timing information: this can be the TS field
of the DNC header, or the timestamp field of an NTP header if already
present in the packet. This timing information (noted TS hereafter,
no matter its origin) is used to determine the coding coefficients in
a coding node. When several DNC packets are present in the encoding
window, originating from one or several sources, a decision on which
TS will be sent downstream in the network must be taken. Options
include keeping the oldest TS value, the newest TS value, or
generating a local TS value. It is assumed that the granularity of
the TS in choosing the coding coefficients would be to the second tin
order to react to instantaneous condition.
It is also possible to use the TS in a wider sense, to link to
network operations and coding based police management. This includes
the determination of the coding window, Code Rate, Galois field, etc.
-- Editor's note: This extension is left for future specifications
as it requires closer coordination between network management.
policy and coding. --
Montpetit, et al. Expires September 10, 2015 [Page 5]
Internet-Draft Dynamic Network Coding March 2015
4.2. About the FEC Encoding ID, Codepoint and Coding Decisions
The FEC Encoding ID is used to identify the type of code (i.e., FEC
Scheme) to use at each coding node. This is an integer identifier
assigned by IANA. The value of the FEC Encoding ID MAY vary over the
time, within the same flow, and/or across the same path between
several coding nodes. Different coding decisions can be made by
different management entities with different operating constraints
(for instance content provider versus network operator).
-- Editor's note: Having the possibility to change the coding
decisions can have major practical technical implications that are
not considered for the moment. --
The Codepoint is an opaque value to be used along with the FEC
Encoding ID and TS. The {FEC Encoding ID, Codepoint, TS} tuple
identifies uniquely the FEC Scheme used and the set of coding
coefficients. Examples are provided below on how to do that.
5. Dynamic Network Coding (DNC) Procedures
5.1. Input Symbol Creation
Incoming DNC packets at a coding node are not necessarily of the same
fixed size. This size may largely vary over the time, up to a
maximum size that is related to the Link MTU and/or Path MTU. This
is a problem when Repair Symbols need to be produced by a coding
node.
Let us consider the simple case where the FEC Scheme is such that a
Repair Symbol necessarily spans the payload of the largest Incoming
DNC Packet at the encoding window of the coding node. Let L be equal
to the maximum size of the DNC packets in the encoding window plus 2
bytes. The 2 bytes are used to store the original size of the
packets. Any DNC packet of size inferior to L-2 bytes MUST be zero
padded to achieve the desired length of L bytes. Then any Repair
Symbol within the set of Output Symbols is L bytes long. When a
Source Symbol is erased and later decoded, the first two bytes of the
decoded symbol, that contain the symbol_len field, allows to drop the
potential padding.
+------------+-----------------------+------------------------------+
| symbol_len | symbol value | optional padding |
+------------+-----------------------+------------------------------+
2 bytes symbol_len bytes L - 2 - symbol_len bytes
<------------------------------- L bytes --------------------------->
Figure 1: Symbol Format, Case of a Single Flow
Montpetit, et al. Expires September 10, 2015 [Page 6]
Internet-Draft Dynamic Network Coding March 2015
-- Editor's note: in presence of multiple flows, an additional
FlowID field may be prepended in order to identify the flow this
Input Symbol belongs to. The details are TBD. --
5.2. Other Procedures TBD
TBD
For instance it may be interesting to have a feedback flow to enable
a receiver to adjust its encoding window according to the received or
decoded Source Symbols.
6. Application of Dynamic Network Coding to Various Use-cases
-- Editor's note: This section contains material that may be more
appropriate in a future NC Architecture document. --
Several technical aspects need to be considered:
o Intra-flow encoding: (single flow) here all the Source Symbols
belong to the same and unique flow;
o Inter-flow encoding: (multiple flows) here the Source Symbols
belong to two or more flows. This situation is more complex, in
particular because it requires to remember the flow a given source
symbol belongs to in case this latter gets lost and is recovered
by a decoding node;
o End to end: (single coding node) here there is a single coding
node and a single decoding node. However the coding and/or
decoding nodes are not necessarily the source and destination
nodes. For instance these operations can be performed by middle
boxes, or coding may be done in a middle box while decoding is
performed at the destination node, or vice-versa. The nature of
the coding and decoding nodes should not significantly impact the
way DNC operates;
-- Editor's note: This claim is TBC. --
o In network re-coding: (composability) here several coding nodes
exist along the path. This situation significantly impacts the
way DNC operates, in particular in terms of signaling. Indeed a
decoding node MUST be able to identify the exact manner in which a
given Repair Symbol has been generated, recursively since this
Repair Symbol MAY be the result of several coding operations, at
different coding nodes;
Montpetit, et al. Expires September 10, 2015 [Page 7]
Internet-Draft Dynamic Network Coding March 2015
o Multi-source: here several traffic sources exist. They either
jointly contribute to the same data flow, all sources sending
traffic related to the same content, or they contribute to
multiple data flows, sources sending traffic for different
contents;
o Multi-paths: here the traffic follows multiple paths. This
traffic can be originated from a unique source (e.g., with multi-
path TCP, MPTCP), or with multiple sources which is the more
general case;
The above taxonomy can be used to identify several types of use-
cases. In the following we consider some of the potential use-cases
and explain how DNC can be applied. This is in no case an exhaustive
list and will be adapted in the future as we get more insights on the
code usage.
6.1. Single Flow, Single Source, End-to-end, Single Path or Multi Paths
Use-Case
In this use-case, there is a single flow originated by a single
source, with intra stream coding that takes place at a single coding
node. There can be either a single path or multiple paths, since
this situation does not impact the way DNC operates.
This is the simplest use-case, that is very much inline with
currently proposed scenarios for end to end streaming.
6.1.1. Example of DNC Implementation for this Use-Case
The following DNC approach / FEC Scheme is appropriate for this
simple use-case. However this is only an example and other
approaches may be considered, for instance differing in the way the
{FEC Encoding ID, Codepoint, TS} tuple is used.
Let us consider a FEC Scheme that defines the G table containing NL
lists, each list being populated with NC coefficients over a given
Finite Field, say GF(2^^4). This table, G, is contained in the FEC
Scheme specification. Each coding and decoding node supports this
FEC Scheme (and potentially a certain number of additional FEC
Schemes), this latter being identified by an IANA FEC Encoding ID
value.
o Encoding process: Let W be the encoding window, containing K Input
Symbols (constructed as specified in Section 5.1). It is required
that K be at most equal to the number of coefficients in each row
of G. If this is not the case, an appropriate number of symbols
are removed from window W until this property holds. Let TS be
Montpetit, et al. Expires September 10, 2015 [Page 8]
Internet-Draft Dynamic Network Coding March 2015
the timestamp corresponding to the current time at the coding
node. Let Codepoint be the current integer value of a counter
that is managed sequentially, starting a 0 upon initializing the
DNC coding node instance, and wrapping to 0 upon reaching the
maximum counter value.
-- Editor's note: The counter field size, in bits, is not
specified in this version of the document. 32 bits or 16 bits
are two possible values. --
Let r be an integer calculated as r=f(Codepoint, TS, K); where f
is a deterministic function that produces an integer in the {0;
K-1} range. This function is for instance the result of a hash
over {Codepoint, TS} modulo K.
-- Editor's note: The FEC Scheme specification fully specifies
this f function. --
The output Repair Symbol is computed as the XOR sum of each Input
Symbol in W multiplied by the corresponding coefficient in row r
of G (i.e., the first symbol is multiplied by G[r][0], the second
symbol is multiplied by G[r][1], etc. til the last symbol of W).
o Transmitted Output Symbol: The FEC Encoding ID is communicated in
the DNC packet header. The {Codepoint, TS} tuple can be used to
uniquely identify the Repair Symbol produced by the coding
process. This tuple is communicated in the DNC packet header.
The ESI of each packet currently in W is communicated in the DNC
packet header. This information can consist of a list of ESIs, or
in the simple case where they are all in sequence, the {first ESI,
K} tuple can be communicated, or a sequence of such tuples can be
sent in the case where ESIs are mostly in sequence with a limited
number of gaps, of the first ESI along with a bit field (e.g., of
size 64 bits if K is at most 64) can be communicated.
-- Editor's note: Many other pieces of information will be
transmitted for other features. The DNC header format also
remains TBD. --
o Processing at the decoding node: Upon receiving this Repair
Symbol, an additional equation is added to the current linear
system. The FEC Encoding ID enables the decoding node to identify
the FEC Scheme used by the coding node, as well as the G matrix.
The {Codepoint, TS} tuple enables the decoding node to identify
the set of coding coefficients used by the coding node.
o Decoding process: If the linear system enables it, a decoding
process is used to recover an erased Source Symbol. The first two
Montpetit, et al. Expires September 10, 2015 [Page 9]
Internet-Draft Dynamic Network Coding March 2015
bytes of the decoded symbol is read and used to identify the
initial length of the Source Symbol and to remove padding if
needed. The decoded Source Symbol is then communicated to the
receiving node (or receiving application).
6.2. Single Flow with In-network Re-Coding
In this use-case, there is a single flow, originated either by a
single source or by multiple source for the same content, with in-
network re-coding capabilities. There can be either a single path or
multiple paths (e.g., if there are multiple sources). There are
multiple sub use-cases, among which the following three ones.
S ==> CN_1 ==> Router ==> D_1
| | source symbols
erasures | v
+======> CN_2 ==> D_2
Figure 2
In this first scenario CN_1 et CN_2 are two NC encoders. The flow
arriving in CN_2 from the router is impacted by erasures. However
this is not the case of the links to destination D_1, that has
decoded the packets and this node retransmits the source symbols
received or recovered towards D_2. In CN_2 all symbols are
recombined and sent to D_2. This could be a scenario that combines
wired and wireless paths.
Another scenario is the following, where two sources generate some
traffic for the same content:
S_1 ==> CN_1 ==> CN_3 ==> D_1
^
|
S_2 ==> CN_2 =====+
Figure 3
Here S_1 and S_2 are transmitting the same content. The flow coming
from S_1 (resp. S_2) is encoded at CN_1 (resp. CN_2), and the two
encoded flows are later re-encoded in CN_3, a third NC encoder, on
their way to D_1.
Finally, with a single flow passing through wired and wireless paths,
the following scenario is likely.
Montpetit, et al. Expires September 10, 2015 [Page 10]
Internet-Draft Dynamic Network Coding March 2015
S ==> CN_1 ==> low losses ==> CN_2 ==> high losses ==> D_1
Figure 4
Between CN_1 and CN_2, the network is a wired internet and a high
rate code (i.e., adding a limited number of encoded packets) can be
used (e.g., it may be a simple XOR of packets as in QUIC [QUIC]).
Between CN_2 et D_1 the link can be a WIFI or LTE wireless network,
potentially experiencing higher losses. Consequently a higher number
of Repair Symbols (i.e., lower code rate) can be needed, with
potentially a local feedback loop that enables to adapt the code rate
based on the instantaneous conditions observed over that lossy link.
6.3. Other Use Cases
Many use-cases remain TBD, for instance to cover the Peer to peer,
complex multipath, or storage use-cases.
7. Acknowledgements
M-J. Montpetit would like to thank Huawei and in particular Shucheng
Liu for supporting the work leading to this draft.
8. IANA Considerations
TBD
9. Security Considerations
TBD, see RFC 3552 [RFC3552].
10. References
10.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
10.2. Informative References
[I-D.adjih-dragoncast]
Adjih, C., Cho, S., and E. Baccelli, "Broadcast With
Network Coding: DRAGONCAST", draft-adjih-dragoncast-00
(work in progress), July 2013.
Montpetit, et al. Expires September 10, 2015 [Page 11]
Internet-Draft Dynamic Network Coding March 2015
[I-D.detchart-nwcrg-tetrys]
jonathan.detchart@isae.fr, j., Lochin, E., Lacan, J., and
V. Roca, "Tetrys, an On-the-Fly Network Coding protocol",
draft-detchart-nwcrg-tetrys-00 (work in progress), October
2014.
[ICN] Montpetit, M., Wesphal, C., and D. Trossen, "Network
coding meets information-centric networking: an
architectural case for information dispersion through
native network coding", Proceedings of the 1st ACM
workshop on Emerging Name-Oriented Mobile Networking
Design - Architecture, Algorithms, and Applications
(NOM'2012), June 2012.
[QUIC] Roskind, JR., "QUIC: Quick UDP Internet Connections
Multiplexed Stream Transport", IETF-88 TSV Area
Presentation, November 2013.
[RFC3552] Rescorla, E. and B. Korver, "Guidelines for Writing RFC
Text on Security Considerations", BCP 72, RFC 3552, July
2003.
[RFC5052] Watson, M., Luby, M., and L. Vicisano, "Forward Error
Correction (FEC) Building Block", RFC 5052, August 2007.
[RFC6363] Watson, M., Begen, A., and V. Roca, "Forward Error
Correction (FEC) Framework", RFC 6363, October 2011.
[RLNC] Ho, T., Koetter, R., Medard, M., Karger, D., Effros, M.,
Shi, J., and B. Leung, "A Random Linear Network Coding
Approach to Multicast", IEEE Transactions on Information
Theory Vol. 52 No. 10, October 2006.
Appendix A. Appendix: IPR aspects
IPR aspects if any to be provided later
Authors' Addresses
Marie-Jose Montpetit
MIT
Cambridge, MA 02138
USA
Email: mariejo@mit.edu
Montpetit, et al. Expires September 10, 2015 [Page 12]
Internet-Draft Dynamic Network Coding March 2015
Vincent Roca
INRIA
655, av. de l'Europe
Inovallee; Montbonnot
ST ISMIER cedex 38334
France
Email: vincent.roca@inria.fr
URI: http://privatics.inrialpes.fr/people/roca/
Jonathan Detchart
ISAE
10, avenue Edouard-Belin
BP 54032
Toulouse CEDEX 4 31055
France
Email: jonathan.detchart@isae.fr
Montpetit, et al. Expires September 10, 2015 [Page 13]