NWCRGInternet Research Task Force (IRTF) B. AdamsonInternet-DraftRequest for Comments: 8406 NRLIntended status:Category: Informational C. AdjihExpires: September 19, 2018ISSN: 2070-1721 INRIA J. Bilbao Ikerlan V. Firoiu BAE Systems F. Fitzek TU Dresden S. GhanemIndependantIndependent E. Lochin ISAE - Supaero A. Masucci Orange M-J. MontpetitIndependantIndependent M. Pedersen Aalborg University G. Peralta Ikerlan V. Roca, Ed. INRIA P. Saxena AnsuR Technologies S. Sivakumar CiscoMarch 18,June 2018 Taxonomy of Coding Techniques for Efficient Network Communicationsdraft-irtf-nwcrg-network-coding-taxonomy-08Abstract This documentis the product of the Network Coding Research Group (NWCRG). Itsummarizesarecommended terminology for Network Coding concepts and constructs. It provides a comprehensive set of terms in order to avoid ambiguities in future IRTF and IETF documents on Network Coding. This document isin-linethe product of the Coding for Efficient Network Communications Research Group (NWCRG), and it is in line with the terminology used by the RFCs produced by the Reliable Multicast Transport (RMT) and FEC Framework (FECFRAME) IETF working groups. Status of This Memo ThisInternet-Draftdocument issubmitted in full conformance withnot an Internet Standards Track specification; it is published for informational purposes. This document is a product of theprovisionsInternet Research Task Force (IRTF). The IRTF publishes the results ofBCP 78Internet-related research andBCP 79. Internet-Drafts are working documentsdevelopment activities. These results might not be suitable for deployment. This RFC represents the consensus of the Coding for Efficient Network Communications Research Group of the InternetEngineeringResearch Task Force(IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at https://datatracker.ietf.org/drafts/current/. Internet-Drafts(IRTF). Documents approved for publication by the IRSG aredraft documents validnot candidates fora maximumany level ofsix monthsInternet Standard; see Section 2 of RFC 7841. Information about the current status of this document, any errata, and how to provide feedback on it may beupdated, replaced, or obsoleted by other documentsobtained atany 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 19, 2018.https://www.rfc-editor.org/info/rfc8406. Copyright Notice Copyright (c) 2018 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 (https://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 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 . . . . . . . . . . . . . . . . . . . . . . . . 3 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 4 2. GeneraldefinitionsDefinitions andconceptsConcepts . . . . . . . . . . . . . . 4 3. Taxonomy of Code Uses . . . . . . . . . . . . . . . . . . . . 7 4. Coding Details . . . . . . . . . . . . . . . . . . . . . . . 9 4.1. Coding Types . . . . . . . . . . . . . . . . . . . . . . 9 4.2. Coding Basics . . . . . . . . . . . . . . . . . . . . . . 10 4.3. CodingInin Practice . . . . . . . . . . . . . . . . . . . 12 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13 6. Security Considerations . . . . . . . . . . . . . . . . . . . 13 7. References . . . . . . . . . . . . . . . . . . . . . . . . .1314 7.1. Normative References . . . . . . . . . . . . . . . . . .1314 7.2. Informative References . . . . . . . . . . . . . . . . .13 Appendix A. Additional references . . . . . . . . . . . . . . . 14 Appendix B. Authors and Contributors . . . . . . . . . . . . . .14 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . .1415 1. Introduction This document isnot an IETF product and is not a standard. This document isthe product of and represents the collaborative work and consensus of theNetworkCoding for Efficient Network Communications Research Group(NWCRG).(NWCRG); it is not an IETF product and is not a standard. In 2017,it has beenthe document was discussed during three audio conferences, each of them gathering 6 to 8 keyexperts,experts; ithas been co-edited,was co-edited andfinally subjectsubjected toaan RG Last Call. The general feeling was that the document wasready for the next step.ready. Additional information about Network Coding may be found on these NWCRG pages: <https://irtf.org/nwcrg> and <https://datatracker.ietf.org/rg/nwcrg/about/>. The literature on Network Coding research and system design, including IETFincluded,documentation, led to a rich set of concepts and constructs. This document collects terminology used in the domain, both outside and inside IETF, provides concise definitions, and introduces ahigh- levelhigh-level taxonomy. Its primary goal is to be useful to IETF and IRTF activities. It is alsoin-linein line with the terminology already used by the RFCs produced by the Reliable Multicast Transport (RMT) and FEC Framework (FECFRAME) IETF working groups, in particular[RFC5052] [RFC5740] [RFC5775] [RFC6363][RFC5052], [RFC5740], [RFC5775], [RFC6363], and [RFC6726]. This document is also related to IETF work being done in the PAYLOAD and TSVWG WGs (in particular, the extension of FECFRAME to support Sliding Window Codes and the Random Linear Coding (RLC) sliding window FEC scheme) and past work in the AVTCORE and MMUSIC WGs. Note that in the definitions, the "(IETF)" tag indicates that the associated term is already used in IETFdocuments.documents (Internet-Drafts and RFCs). This document focuses on packet transmissions andpacketlosses. These losses will typically be triggered by various types of networking issues and/or impairments (e.g., congested routers or intermittent wireless connectivity). The notion of "packet" itself is multiform, depending on the targetuse-caseuse case and the notion of network (e.g., in which layer of the protocol stack does the coding middleware operate?). For instance, a "packet" may be a data unit to be carried as a UDP payload because the coding middleware is located between the application and UDP. In another configuration, coding may be applied within an overlay network and the notion of "packet" will be totally different. In anycasecase, the goals of Network Coding can be to improve the network throughput, efficiency, latency, and scalability, as well asprovidingto provide resilience to partition, attacks, and eavesdropping (NWCRG charter). Both End-to-End Coding and systems that also performre-codingrecoding within intermediate forwarding nodes are considered in this document. This document does not considerphysical layerphysical-layer transmission issues,nor physical layerphysical-layer codes,noror error detection: iflow layerlow-layer error codes detect but fail to correct bit errors, or if anupper layerupper-layer checksum (e.g., within IP or UDP) identifies a corrupted packet, thenthisthe packet is supposed to be dropped. 1.1. Requirements Language Thekeywordskey words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described inRFC 2119 [RFC2119].BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here. 2. GeneraldefinitionsDefinitions andconceptsConcepts This sectiongathersprovides general definitions and concepts that are used throughout this document. Packet Erasure Channel: A communication path where packets are either dropped or received without any error. This type of packet drop is referred to as an "erasure" or "loss". The term "channel" must be understood as a generic term for any type of communication technology (e.g., an Ethernet link, a WiFi network, or a full path between two nodes over the Internet).The "Erasure" channels areAs opposed to the "Erasure" channels, "Error" channels are where one or multiple bit errors may happen during a packet transmission. These "Error" channels are out of scope. Erasure Correcting Code(ECC),(ECC) or (IETF) Forward ErasureCodeCorrection (FEC): A code for the Packet Erasure Channel (only). These codes are also called "Application-LevelFEC"FECs" to highlight that they have been designedto be usedfor use within the higher layers of the protocolstack,stack to protect against packet losses.These codes areAs opposed to ECCs/FECs, "Error" correction codesthatare capable of identifying the presenceand/or correctingof biterrors.errors and perhaps correcting them. The "Error" correction codes are out of scope. 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 nore- codingrecoding operation at intermediate nodes. This is the approach followed in the FLUTE/ALC[RFC6726][RFC5775],[RFC6726] [RFC5775], NORM[RFC5740][RFC5740], and FECFRAME [RFC6363] protocols. Network Coding: A system where coding can be performed at the source as well as at intermediate forwarding nodes (all or a subset of them).End-to-EndEnd-to- End Coding is regarded as a special case of Network Coding. Depending on the use case, additional assumptions can be made: forinstance the knowledge byinstance, the destinationofknowing thecoding nodesCoding Nodes' topology and coding operations can help during decoding operations. Packet versus Symbol: Generally speaking, a Packet is the unit of data that is sent in the Packet Erasure Channel, while a Symbol is the unit of data that is manipulated during the encoding and decoding operations. Original Payload,orUncoded Payload,orSystematic Symbol, or (IETF) Source Symbol: A unit of data originating from the source that is used as input to encoding operations.When there is a single Source Symbol per Source Packet, an Original Payload corresponds to a Source Packet.Coded Payload, Coded Symbol, or (IETF) Repair Symbol: A unit of data that is the result of a coding operation, applied either to Source Symbols or (in case of recoding) Source and/or Repair Symbols. When there is a single Repair Symbol per Repair Packet, aCoded PayloadRepair Symbol corresponds to a Repair Packet. Input Symbol and Output Symbol: A unit of data that is used as input to an encoding operation or that is generated as output of an encoding operation. At are-codingrecoding node, Repair Symbols are also part of the Input Symbols. With Systematic Coding, Source Symbols are also part of the Output Symbols. (IETF) Encoding Symbol: A Source or a Repair Symbol. (En)coding versus Recoding versus Decoding: (En)coding is an operation that takes Source Symbols as input and produces Encoding Symbols as output. Recoding is an operation that takes Encoding Symbols as input and produces Encoding Symbols as output. Decoding is an operation takes Encoding Symbols as input and produces Source Symbols as output. (IETF) Source Packet: A packet originating from the sourcewhichthat contributes to one or more Source Symbols. For instance, an RTP packet as a whole can constitute a Source Symbol. In other situations(e.g,(e.g., to address variable sizepackets)packets), a single RTP packet may contribute to various Source Symbols. (IETF) Repair Packet: A packet containing one or more Repair Symbols. Figure 1 illustrates the relationships between packets (what is sent in the Packet Erasure Channel) and symbols (what is manipulated during encoding and decoding operations) in case ofFEC encoding,a Systematic Coding at a Coding Node that performs Encoding (rather than Recoding). FEC decoding procedures are similarly performed in the reverse order.source packetSource Packet | |source packetSource Packet tosource symbolsSource Symbols transform | (one or more symbols per packet) vsource symbolsSource Symbols | vinput symbolsInput Symbols +----------------------+ | FEC encoding | +----------------------+ |output symbolsOutput Symbols | v vsource symbols repair symbolsSource Symbols Repair Symbols | | | |symbol to packetsymbol-to-packet transform | | (one or more symbols per packet) v vsource packet repair packetSource Packet Repair Packet Figure 1: Packet andsymbol relationshipsSymbol Relationships at a Coding Nodethat performsThat Performs Encoding(rather than Recoding).(Rather Than Recoding) Source Node: A node that generates one or more Source Flows. Coding Node: A node that performs FEC Encoding or Recoding operations. It may be anend-hostend host or a middlebox (Encoding case), or a forwarding node (Recoding case). (IETF) Flow: A stream of packets logically grouped. (IETF) Source Flow: A flow of Source Packets coming from an application on a givenhost,host and to which FEC encoding is to be applied, potentially along with other Source Flows. Depending on the use case, Source Flows may come from the same application, from different applications on the same host, or from different applications on different hosts. (IETF) Repairflow:Flow: A flow containing RepairPackets,Packets after FEC encoding. 3. Taxonomy of Code Uses This section discusses the various ways of using coding, without going into coding details. Source Coding versus Channel Coding: (see Figure 2) When both terms areopposed,used, "Source Coding" usually refers to compression techniques (e.g., audio and video compression) within the upper application that generates thesource flow. On the opposite,Source Flow. "Channel Coding" refers to FEC encoding in order to improve transmission robustness, forinstanceinstance, within the lower physical layer (out of scope of this document) or as part of Network Coding. These terms should not be confused withrespectively"FEC coding within the Source Node" and "FECre-codingrecoding within an intermediate CodingNode".Node", respectively. raw data flow from camera ^ video flow display | | ^ v | upper |+-----------------------++------------------------+ |+-----------------------++-------------------------+ | source coding | | applica- | source (de)coding ||(e.g.|(e.g., mpeg compression)| | tion|(eg.|(e.g., mpg decompression)|+-----------------------++------------------------+ v+-----------------------++-------------------------+ | ^ v |+-----------------------++------------------------+ ^+-----------------------++-------------------------+ | network/AL-FEC coding | | middle- | network/AL-FEC coding | |(e.g.(e.g., RLC encoding) | | ware |(e.g.(e.g., RLC decoding) |+-----------------------++------------------------+ v+-----------------------++-------------------------+ | ^ v |+-----------------------++------------------------+ ^+-----------------------++-------------------------+ | packetization | | | depacketization | |(e.g.(e.g., UDP/IP) | | communi- |(e.g.(e.g., UDP/IP) |+-----------------------++------------------------+ | cation+-----------------------++-------------------------+ | | ^ v | layers | +-----------------------+ |+-----------------------++-------------------------+ | PHY layer | | | PHY layer | | (channel coding) | | | (channel decoding) | +-----------------------+ v+-----------------------++-------------------------+ | ^ | source + repair traffic |+-------------------------------------------++-----------------------------------------+ Figure 2: Example ofend-to-end flow manipulationEnd-to-End Flow Manipulation with Network Coding Figure 2 shows Network Coding between the application and UDP layers (as with RMT or FECFRAME architectures). Other architectures are possible, forinstanceinstance, withnetwork codingNetwork Coding below the transport layerin orderto allowre-codingrecoding within the network. Intra-FlowCoding,Coding orSingle SourceSingle-Source Network Coding: Process where incoming packets to the Coding Node belong to the same flow. Inter-FlowCoding,Coding or Multi-Source Network Coding: Process where incoming packets to the Coding Node belong to different flows. Single-Path Coding: Network Coding over a route that has a single path from the source to each destination(s). In case of multicast or broadcast traffic, this route is a tree. Coding may be doneend-to-endend to end and/or at intermediate forwarding nodes. Multi-Path Coding: Network Coding over a route that has multiple (at least partially) disjoint paths from the source to each given destination. Coding may be doneend-to-endend to end and/or at intermediate forwarding nodes. 4. Coding Details 4.1. Coding Types This section provides a high-level taxonomy of coding techniques. Technical details areleft for the followingdiscussed in subsequent sections. Linear Coding: Linear combination of a set ofinput symbolsInput Symbols (i.e., Source and/or Repair Symbols) using a given set of coefficients and resulting in a Repair Symbol. Many linear codes exist that differ from the way coding coefficients are drawn from a Finite Field of a given size. Random Linear Coding (RLC): Particular case of Linear Coding using a set of random coding coefficients. Adaptive Linear Coding: Linear Coding that utilizescross layercross-layer adaptation. For instance, an adaptive coding scheme may adapt the generation and transmission of Repair Packets according to the channel variations over time, accounting for the predictive loss of degrees of freedom due to erasures. Block Coding: Coding technique where the input Flow(s) mustbefirst be segmented into a sequence ofblocks,blocks; FEC encoding and decodingbeingare performed independently on a per-block basis. The term "Chunk Coding" is sometimes used, where a "Chunk" denotes a block. Sliding WindowCoding,Coding or Convolutional Coding: General class of coding techniques that rely on a sliding encoding window. This is an alternative solution to Block Coding. Fixed or Elastic Sliding Window Coding: Coding technique that generates Repair Symbol(s)on-the-fly,on the fly, from the set of Source Symbols present in 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 (also known as"elastic sliding window")."Elastic Sliding Window"). For instance,thisthe size may depend on acknowledgments sent by the receiver(s) for a particular Source Symbol or Source Packet (received, decoded, or decodable). Systematic Coding: A coding technique where Source Symbols are part of the output Flow generated by a Coding Node. Rateless andNon-RatelessNon-rateless Coding: Rateless Coding can generate an unlimited number of Repair Symbols (inpracticepractice, this number can be limited by practical considerations or because ofuse- caseuse-case requirements) from a given set of Source Symbols, meaning that the code rate is null. RLC codes are an example of Rateless Codes.On the opposite, Non-RatelessAlternately, Non-rateless Coding usually has a predefined maximum number of Repair Symbols that can be generated from a given set of Source Symbols. 4.2. Coding Basics This section discusses and defineslow levellow-level coding aspects. Code Rate: In case of a Block Code, the Code Rate is the k/n ratio between the number of Source Symbols, k, and the number of Source plus Repair Symbols, n. With a Sliding Window Code, the Code Rate is defined similarly over a certain time interval, since the Code Rate may change dynamically. By definition, the Code Rate is such that: 0 < Code Rate <= 1. A Code Rate close to 1 indicates that a small number of Repair Symbols have been produced during the encoding process andvice-versa.vice versa. (En)coding Window: A set of Source (and Repair in the case ofre- coding)recoding) Symbols used as input to the coding operations. The set of symbols will typically change overthetime, as the Coding Window slides over the input Flow(s). (En)coding Window Size: The number of Source (and Repair in case ofre-coding)recoding) Symbols in the current Encoding Window. This size may change over the time. Payload Set: The set of Source and Repair Symbols available (i.e., received or previously decoded) at the receiver and used during FEC decoding operations. Decodingwindow:Window: The set of Source Symbols (only) that are considered in the current linear system of a receiver, independently of the fact these Source Symbols have been received, decoded, or lost. The Decoding Window will typically change overthetime, as transmissions and decoding progress, and may be different for different receivers of a session where content is multicast or broadcast. Decoding Window Size: The number of Source Symbols (only) in the current Decoding Window. This size may change overthetime. Rank of a PayloadSet,Set or(IETF)Rank of the Linear System: At arec eiver,receiver, number of linearly independent members of a Payload Set, or equivalently 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"andwhere decoding ispossible,possible or "partialrank", andrank" where only partial decoding is possible. SeenPayload,Payload or Seen Symbol: A Source Symbol is Seen when the receiver can compute a linear combination with this symbol and Source Symbols that are strictly more recent (i.e., with logically higher Encoding Symbol Identifiers).OtherwiseOtherwise, the Source Symbol is considered as"unseen". Generation,"Unseen". Generation or (IETF) Block: With Block Codes, the set of Source Symbols of the input Flow(s) that are logically grouped into a Block, before doing encoding. Generation Size,orCode Dimension, or (IETF) Block Size: With Block Codes, the numberkof SourceSymbolsSymbols, k, belonging to a Block. CodingMatrix,Matrix or Generator Matrix: A matrix G that transforms the set of Input Symbols X into a set of Repair Symbols: Y = X * G. Defining a Generator Matrix isusualtypical with Block Codes. The set of Input Symbols X can consist only of Source Symbols (e.g., with End-to-End Coding) or can consist of Source and Repair Symbols (e.g., withre-codingrecoding in an intermediate node). 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,orin apre-definedpredefined table, or using apre-definedpredefined algorithm plus a seed. Coding Vector: A set of Coding Coefficients used to generate a certain Repair Symbol through Linear Coding. The number of nonzero coefficients in the Coding Vector defines its density. Finite Field,orGalois Field, or Coding Field: Finitefields,Fields, used in Linear Codes, have the desired property of having all elements (except zero) invertible for the + and * operators, and all operations over any elements do not result in an overflow or underflow. Examples of Finite Fields are prime fields {0..p^m-1}, where p is prime.MostThe most used fields use p=2 and are called binary extension fields {0..2^m-1}, where m often equals 1,44, or 8 for practical reasons. Finite Fieldsize,size or Coding Field size: The number of elements in afinite field.Finite Field. Forexampleexample, the binary extension field {0..2^m-1} has size q=2^m. Feedback: Feedback information sent by a decoding node to a Coding Node (or from a receiver to a source in case of End-to-End Coding). The nature of information contained in a feedback packet varies, depending on theuse-case.use case. It can provide reception and/or FEC decoding statistics,orthe list of available Source Packets received or decoded (acknowledgement),orthe list of lost Source Packets that should be retransmitted (negative acknowledgement), or a number of additional Repair Symbols needed to have a Full Rank Linear System. 4.3. CodingInin Practice This section discusses practical aspects. Indeed, a practical solution must specify the exact manner in which encoding and decodingisare performed but also detail all the peripheral aspects, forinstanceinstance, how an encoder informs a decoder about the parameters used to generate a certain Repair Packet (signaling). (IETF) FEC Scheme: A specification that defines a particular FEC code as well as the additional protocol aspects required to usea particularthis FEC code. Inparticularparticular, the FEC Scheme definesin bandin-band (e.g., information contained in Source and Repair Packet header or trailers) andout of bandout- of-band (e.g., information contained in an SDP description) signaling needed to synchronize encoders and decoders. PayloadIndices,Index or (IETF) Encoding SymbolIdentifiersIdentifier (ESI): Anide ntifieridentifier of a Source or Repair Symbol.If conceptually,With Block Coding, each symbol of a given block is identified by a unique ESIvalue, in practice, withvalue. With Sliding Window Coding, a continuousflowSource Flow and a limited field size to hold the ESI, wrapping to zeroinis unavoidable and the same integer value will bere-usedreused several times. (IETF) FEC Payload ID: Information that identifies the contents of a packet with respect to the FEC Scheme. The FEC Payload ID of a packet containing Source Symbol(s) is usually different from that of a packet containing Repair Symbol(s). The FEC Payload ID typically contains at least an ESI. Coding Vector and Encoding Window Signaling: With Sliding Window Codes, the FEC Payload ID of a Repair Packet contains information needed and sufficient to identify the Coding Vector and Coding Window. Concerning the Coding Vector, this may consist of a full list of Coding Coefficients (that maybe compressedornot),may not be compressed), or a piece of information (e.g., a seed) that can be used to generate the list of Coding Coefficients thanks to a predefined algorithm known by encoders and decoders (e.g., aPseudo RandomPseudorandom Number Generator, orPRNG),PRNG) or an ESI that points to a given entry in a Generator Matrix in case of a Block Code. Concerning the Coding Window, this may consist of the full list of ESI of symbols in the Coding Window (that maybe compressedornot),may not be compressed) or the ESI of the first Source Symbol along with their number (assuming there is no gap). 5. IANA Considerations This documentis not subject tohas no IANAregistration.actions. 6. Security Considerations This document introduces a recommended terminology fornetwork codingNetwork Coding and therefore does not contain any securityconsideration.considerations. This does not mean thatnetwork codingNetwork Coding systems do not have any security implication. 7. References 7.1. Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, <https://www.rfc-editor.org/info/rfc2119>. [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017, <https://www.rfc-editor.org/info/rfc8174>. 7.2. Informative References [RFC5052] Watson, M., Luby, M., and L. Vicisano, "Forward Error Correction (FEC) Building Block", RFC 5052, DOI 10.17487/RFC5052, August 2007, <https://www.rfc-editor.org/info/rfc5052>. [RFC5740] Adamson, B., Bormann, C., Handley, M., and J. Macker, "NACK-Oriented Reliable Multicast (NORM) Transport Protocol", RFC 5740, DOI 10.17487/RFC5740, November 2009, <https://www.rfc-editor.org/info/rfc5740>. [RFC5775] Luby, M., Watson, M., and L. Vicisano, "Asynchronous Layered Coding (ALC) Protocol Instantiation", RFC 5775, DOI 10.17487/RFC5775, April 2010, <https://www.rfc-editor.org/info/rfc5775>. [RFC6363] Watson, M., Begen, A., and V. Roca, "Forward Error Correction (FEC) Framework", RFC 6363, DOI 10.17487/RFC6363, October 2011, <https://www.rfc-editor.org/info/rfc6363>. [RFC6726] Paila, T., Walsh, R., Luby, M., Roca, V., and R. Lehtonen, "FLUTE - File Delivery over Unidirectional Transport", RFC 6726, DOI 10.17487/RFC6726, November 2012, <https://www.rfc-editor.org/info/rfc6726>.Appendix A. Additional references Additional references on network coding are available in the NWCRG research web site: https://irtf.org/nwcrg Appendix B. Authors and Contributors This document is the result of a collaborative work that involved many authors and contributors from the IRTF NWCRG. They are listed in alphabetical order in this document.Authors' Addresses Brian Adamson NRLUSAUnited States of America Email: brian.adamson@nrl.navy.mil Cedric Adjih INRIA France Email: cedric.adjih@inria.fr Josu Bilbao Ikerlan Spain Email: jbilbao@ikerlan.es Victor Firoiu BAE SystemsUSAUnited States of America Email: victor.firoiu@baesystems.com Frank Fitzek TU Dresden Germany Email: frank.fitzek@tu-dresden.de Samah A. M. GhanemIndependantIndependent Email: samah.ghanem@gmail.com Emmanuel Lochin ISAE - Supaero France Email: emmanuel.lochin@isae-supaero.fr Antonia Masucci Orange France Email: antoniamaria.masucci@orange.com Marie-Jose MontpetitIndependant USAIndependent United States of America Email: marie@mjmontpetit.com Morten V. Pedersen Aalborg University Denmark Email: mvp@es.aau.dk Goiuri Peralta Ikerlan Spain Email: gperalta@ikerlan.es Vincent Roca (editor) INRIA France Email: vincent.roca@inria.fr Paresh Saxena AnsuR Technologies Norway Email: paresh.saxena@ansur.es Senthil Sivakumar CiscoUSAUnited States of America Email: ssenthil@cisco.com