idnits 2.17.1 draft-heide-nwcrg-rlnc-03.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (September 09, 2019) is 1692 days in the past. Is this intentional? Checking references for intended status: Experimental ---------------------------------------------------------------------------- No issues found here. Summary: 0 errors (**), 0 flaws (~~), 1 warning (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 NWCRG J. Heide 3 Internet-Draft Steinwurf Aps 4 Intended status: Experimental S. Shi 5 Expires: March 12, 2020 K. Fouli 6 M. Medard 7 Code On Network Coding LLC 8 V. Chook 9 Inmarsat PLC 10 September 09, 2019 12 Random Linear Network Coding (RLNC)-Based Symbol Representation 13 draft-heide-nwcrg-rlnc-03 15 Abstract 17 This document describes a symbol representation for Random Linear 18 Network Coding (RLNC) schemes used for reliable data transfer. 19 Specifically, the following features are discussed and incorporated: 20 both block RLNC and a sliding window RLNC, varying data frame sizes, 21 and one or multiple symbols associated with a single symbol 22 representation header. 24 Requirements Language 26 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 27 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 28 document are to be interpreted as described in RFC 2119 [RFC2119]. 30 Status of This Memo 32 This Internet-Draft is submitted in full conformance with the 33 provisions of BCP 78 and BCP 79. 35 Internet-Drafts are working documents of the Internet Engineering 36 Task Force (IETF). Note that other groups may also distribute 37 working documents as Internet-Drafts. The list of current Internet- 38 Drafts is at https://datatracker.ietf.org/drafts/current/. 40 Internet-Drafts are draft documents valid for a maximum of six months 41 and may be updated, replaced, or obsoleted by other documents at any 42 time. It is inappropriate to use Internet-Drafts as reference 43 material or to cite them other than as "work in progress." 45 This Internet-Draft will expire on March 12, 2020. 47 Copyright Notice 49 Copyright (c) 2019 IETF Trust and the persons identified as the 50 document authors. All rights reserved. 52 This document is subject to BCP 78 and the IETF Trust's Legal 53 Provisions Relating to IETF Documents 54 (https://trustee.ietf.org/license-info) in effect on the date of 55 publication of this document. Please review these documents 56 carefully, as they describe your rights and restrictions with respect 57 to this document. Code Components extracted from this document must 58 include Simplified BSD License text as described in Section 4.e of 59 the Trust Legal Provisions and are provided without warranty as 60 described in the Simplified BSD License. 62 Table of Contents 64 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 65 2. Symbol Representation . . . . . . . . . . . . . . . . . . . . 3 66 2.1. Representation Setup . . . . . . . . . . . . . . . . . . 4 67 2.2. Field Types and Formats . . . . . . . . . . . . . . . . . 5 68 2.3. Externally Specified Parameters Required . . . . . . . . 7 69 2.4. Small Encoding Window . . . . . . . . . . . . . . . . . . 7 70 2.4.1. Examples . . . . . . . . . . . . . . . . . . . . . . 9 71 2.5. Large Encoding Window . . . . . . . . . . . . . . . . . . 10 72 3. Security Considerations . . . . . . . . . . . . . . . . . . . 11 73 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11 74 5. References . . . . . . . . . . . . . . . . . . . . . . . . . 11 75 5.1. Normative References . . . . . . . . . . . . . . . . . . 11 76 5.2. Informative References . . . . . . . . . . . . . . . . . 12 77 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12 79 1. Introduction 81 Symbol representation specifies the format of the symbol-carrying 82 data unit that is to be used in network coding operations, including 83 header format and symbol concatenation. This document describes a 84 symbol representation format intended to be used for Network Coding 85 in general, and for Random Linear Network Coding (RLNC) in particular 86 [HK03]. 88 Owing to its dynamic structure, network coding has requirements that 89 are distinct from conventional point-to-point codes, leading to a 90 highly reconfigurable symbol set. Consequently, the design choices 91 related to symbol representation are particularly important in 92 network coding as they have a direct impact on the viability of 93 network protocols, topologies, and architecture [RLNC-Background]. 94 For example, recoding [RLNC-Background] requires the coefficients to 95 be accessible at the recoding nodes. Hence, architectures and 96 protocols requiring recoding must specify coefficient location in 97 their symbol representation. 99 In addition to providing background on RLNC, [RLNC-Background] argues 100 that careful design and specification of a symbol representation is a 101 requirement for any viable network coding protocol, architecture, or 102 topology. 104 2. Symbol Representation 106 This section provides a symbol representation design for implementing 107 RLNC-based erasure correction schemes. In the decribed symbol 108 representation design, multiple symbols are concatenated and 109 associated with a single symbol representation header. 111 The symbol representation design is provided for constructing a data 112 payload portion of a data packet for a protocol that utilizes a 113 generation-based or sliding-window RLNC, where recoding can be used 114 at intermediate nodes. A data packet data payload comprises one or 115 more symbol representations. Each symbol representation in turn 116 comprises one or more symbols that can be systematic, coded or 117 recoded. The use of this symbol representation design is not limited 118 by transmission schemes. It can be applied to unicast, multiple- 119 unicast, multicast, multi-path, and multi-source settings and the 120 like. 122 Coding coefficient vectors must be implicitly or explicitly 123 transmitted from the sender to the receiver, generally along with the 124 coded data for successful decoding of the original data. One option 125 is to attach each coding coefficient vector to the corresponding 126 coded symbol as a header, thus also enabling recoding at intermediate 127 nodes. Another option is to attach the current state of a pseudo- 128 random generator for generating the coding coefficient vector, to 129 reduce the size of the header. Adding a header to each symbol may 130 result in a high overhead when the symbol size is small or when 131 generation or sliding window size is large. Adding a joint header to 132 the beginning of each generation may also cause synchronization to be 133 re-initiated only at the beginning of each generation instead of 134 every symbol. In what follows, a symbol representation is provided 135 that allow for both of these options such that both a general 136 representation with coding coefficients and a compact representation 137 with a seed for generating the coding coefficients can be used, in 138 order to reduce the header overhead. 140 2.1. Representation Setup 142 This section specifies a symbol representation that enables both a 143 general form with coding coefficient vectors attached, and a compact 144 form where a seed is attached which is used to generate one or 145 multiple coding coefficient vectors. Different maximum GENERATION 146 and WINDOW SIZE are supported for RLNC encoding, recoding, and 147 decoding. 149 To encode over a set of data symbols, a coding coefficient vector is 150 first generated, comprising a number of finite field elements as 151 specified by a GENERATION SIZE or WINDOW SIZE variable. For a 152 generation based code the GENERATION SIZE defines the number of 153 original symbols in each generation. For a window based code the 154 WINDOW SIZE specifies the maximal number of symbols in the window 155 over which coding can be performed. In the case of systematic codes, 156 systematic symbols correspond to unit coding coefficient vectors. 158 Figure 1 illustrates the general symbol representation design. Four 159 header fields precede the symbol data: TYPE flag (T), SYMBOLS, 160 ENCODER RANK, and SEED or CODING COEFFICIENTS. The TYPE Flag (T) 161 indicates if the symbol is systematic, coded, or recoded. SYMBOLS 162 indicates the number of symbols in the SYMBOLS(S) DATA field. 163 ENCODER RANK represents the current rank of the encoder, which is the 164 number of symbols being linearly combined. SEED is used to generate 165 the coding coefficient vector(s) using a pseudo-random number 166 generator, for a compact form of the symbol representation. The 167 CODING COEFFICIENTS field is a list of SYMBOLS number of coding 168 coefficient vectors used to generate the SYMBOL(S) DATA, and used in 169 the case where no random number generator is available or practical 171 0 1 2 3 172 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 173 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 174 | T |SYMBOLS| ENCODER RANK | SEED or CODING COEFFICIENTS | 175 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 176 | | 177 | SYMBOL(S) DATA | 178 | ... | 179 | | 180 +---------------------------------------------------------------+ 182 Figure 1: A general symbol representation design. 184 2.2. Field Types and Formats 186 The TYPE Flag (T) indicates if the symbol is systematic, coded, or 187 recoded, and has the following properties: 189 o 2 bits long. 191 o If the TYPE flag is '1', all symbols included in this symbol 192 representation are systematic or uncoded, with symbol index 193 starting from ENCODER RANK. This option allows for efficient 194 representation of systematic symbols. 196 o If the TYPE is '2', all symbols included in this symbol 197 representation are coded, with coding coefficient vectors 198 generated using the included SEED and the ENCODER RANK. 199 Consequently, only the first ENCODER RANK elements in the coding 200 coefficient vector can be non-zero, whereas the remaing elements 201 (e.g. GENERATION SIZE - ENCODER RANK) in the coding coefficient 202 vector are zeros. This option allows for compact and efficient 203 representation of coded symbols, which may also subsequently be 204 recoded. 206 o If the TYPE is '3', all symbols included in this symbol 207 representation are either uncoded, coded or recoded. Each coding 208 vector included is composed of GENERATION SIZE or WINDOW SIZE 209 coefficients. 211 SYMBOLS indicates the number of symbols in the 'Symbol(s) Data' 212 field, and has the following properties: 214 o 4 bits long. A maximum number of 15 symbols are concatenated 215 within each symbol representation. 217 o The special case of SYMBOLS = 0 indicates that zero symbols are 218 included, and consequently the size of SYMBOLS(S) DATA is 0 bytes. 219 This can, for example, be used to implement a flush functionality 220 or ensure that protocol operations do not stop in certain case for 221 purely event-driven protocols. 223 ENCODER RANK represents the current rank of the encoder, that is, the 224 number of original symbols used to compute the coded symbols(s). It 225 has the following properties: 227 o MUST be no larger than GENERATION/WINDOW SIZE. 229 o If TYPE flag is '1', ENCODER RANK is the symbol index of the first 230 data symbol in this symbol representation. 232 o If TYPE flag is '2' or '3', ENCODER RANK is the number of data 233 symbols over which coding was performed for all coded symbols in 234 this symbol representation. 236 SEED is used to generate the coding coefficient vector(s) using a 237 pseudo-random number generator, for a compact form of the symbol 238 representation, and has the following properties: 240 o The SEED field is only present when TYPE flag is '2'. If TYPE is 241 '1' or '3', this field is absent. 243 o The pseudo-random generator MUST be seeded with this value and all 244 coding coefficient vectors are produced by the same generator. 245 For example, if ENCODER RANK is 12, then the coding coefficient 246 vector for the first symbol in this symbol representation is 247 coefficients 0 through 11 generated by the pseudo-random generator 248 seeded by SEED, and coding coefficient vector for the second 249 symbol in this symbol representation is coefficients 12 through 23 250 generated by the pseudo-random generator seeded by SEED. If 251 GENERATION/WINDOW SIZE is larger than ENCODER RANK, the remaining 252 coefficients in the coding coefficient vector are zero. 254 o To ensure that SEED can be interpreted correctly at the receiver, 255 the same pseudo-random number generator MUST be used by the sender 256 and a recoding or receiving node. Otherwise, more than one SEED 257 field would need to be used. 259 o 8 bits long. Thus, 256 different seed values can be served. One 260 SEED is used per symbol representation, each of which can contain 261 up to 15 symbols, all derived using the same SEED. For distinct 262 ENCODER RANKs, different coding coefficient vectors would be 263 generated from the same SEED, since only an ENCODER RANK number of 264 coefficients from the random generator is grouped as a coding 265 coefficient vector, before progressing to the next coding 266 coefficient vector for the next symbol in the symbol 267 representation. Consequently, the maximal number of coded symbols 268 that can be generated for a generation is |SEED| * |SYMBOLS| 269 * |ENCODER RANK| which in the best case is (2^8)*(2^4-1)*(2^10) ~ 270 2^22, which for all practical considerations can be considered as 271 an infinite number of coded symbols. If all coded symbols that 272 can be represented using a SEED is exhausted, symbols where the 273 coding coefficient vectors is included can be sent instead. 275 CODING COEFFICIENTS field is a list of SYMBOLS number of coding 276 vectors used to generate the ensuing SYMBOL(S) DATA, and has the 277 following properties: 279 o The CODING COEFFICIENT field is only present when TYPE flag is 280 '3'. If TYPE is '1' or '2', this field is absent. 282 o Each coding coefficient vector includes ENCODER RANK number of 283 coding coefficients. 285 2.3. Externally Specified Parameters Required 287 This section specifies parameters that are REQUIRED for the use of 288 this symbol representation but which are not included in the symbol 289 representation and therefore MUST be communicated by means of some 290 outer mecanism. Typically these parameters will be static throughout 291 a protocol session. Consequently, there is little to gain by 292 incorporating these parameters into the representation but conversely 293 it would add additional overhead. 295 o Field polynomial, the underlying field over which coding is 296 performed. 298 o Pseudo Random Generator, used to generate coding coefficient 299 vectors. 301 o Symbol Size, used to divide the original data into symbols. 303 o GENERATION SIZE or WINDOW SIZE, for block and sliding window 304 codes, respectively. 306 o Small or large encoding window, this symbol representation 307 supports both a small and a large coding window, but the variant 308 used is not communicated. 310 2.4. Small Encoding Window 312 In a first small encoding window symbol representation, ENCODER RANK 313 is 10 bits long, and the maximum GENERATION/WINDOW SIZE is 2^10. 315 Figures 2 to 4 below illustrate systematic, coded, and recoded symbol 316 representations within an encoding window of size 2^10. Systematic 317 symbols are uncoded. Coded symbols are compact in form and comprise 318 a seed for coding coefficient generation. Recoded symbols are 319 general in form and comprise the coding coefficient vectors 320 explicitly. 322 0 1 2 3 323 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 324 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 325 | 1 |SYMBOLS| ENCODER RANK | SYMBOL(S) DATA | 326 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 327 | | 328 | SYMBOLS(S) DATA continued | 329 | ... | 330 | | 331 +---------------------------------------------------------------+ 333 Figure 2: A systematic symbol representation. 335 0 1 2 3 336 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 337 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 338 | 2 |SYMBOLS| ENCODER RANK | SEED |SYMBOL(S) DATA | 339 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 340 | | 341 | SYMBOL(S) DATA continued | 342 | ... | 343 | | 344 +---------------------------------------------------------------+ 346 Figure 3: A compact, coded symbol representation. 348 0 1 2 3 349 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 350 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 351 | 3 |SYMBOLS| ENCODER RANK | CODING COEFFICIENTS | 352 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 353 | | 354 | CODING COEFFICIENTS continued | 355 | ... | 356 | | 357 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 358 | | 359 | SYMBOL(S) DATA | 360 | ... | 361 | | 362 +---------------------------------------------------------------+ 364 Figure 4: A recoded symbol representation. 366 2.4.1. Examples 368 The following examples show different symbol representations for an 369 illustrative case where the symbol size is 2 bytes, GENERATION/WINDOW 370 SIZE is 8, and field size is 2^8. 372 Example 1: Three systematic symbols with ID 0, 1 and 2. As the TYPE 373 flag is '1' , SEED/CODING COEFFICIENTS is absent, and ENCODER RANK is 374 the symbol index of the first data symbol with ID 0 in this compact 375 symbol representation. 377 0 1 2 3 378 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 379 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 380 | 1 | 3 | 0 | Systematic Symbol 0 Data | 381 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 382 | Systematic Symbol 1 Data | Systematic Symbol 2 Data | 383 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 385 Figure 5: A symbol representation with 3 systematic, uncoded symbols. 387 Example 2: Two coded symbols using a compact representation. In this 388 example, TYPE is '2', the SEED to the pseudo-random number generator 389 shared by the sender and receiver is 4. The coding coefficient 390 vector for Symbol A is coefficients 0 to 7 generated by the pseudo- 391 random number generator, the coding coefficient vector for symbol B 392 is coefficients 8 to 15 generated by the pseudo-random number 393 generator. 395 0 1 2 3 396 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 397 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 398 | 2 | 2 | 8 | 4 | Coded Symbol A 399 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 400 Data | Coded Symbol B Data | 401 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 403 Figure 6: A symbol representation with 2 coded symbols. 405 Example 3: Two recoded symbols. Coefficients A0 to A7 constitute the 406 coding coefficient vector for Symbol A, coefficients B0 to B7 407 constitute the coding coefficient vector for symbol B. In practical 408 implementations, symbol sizes are much larger than 2, leading to 409 amortization of the coding coefficient overheads. 411 0 1 2 3 412 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 413 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 414 | 3 | 2 | 8 | A0 | A1 | 415 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 416 | A2 | A3 | A4 | A5 | 417 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 418 | A6 | A7 | B0 | B1 | 419 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 420 | B2 | B3 | B4 | B5 | 421 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 422 | B6 | B7 | Coded Symbol A Data | 423 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 424 | Coded Symbol B Data | 425 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 427 Figure 7: A symbol representation with 2 recoded symbols having 428 coding coefficients attached. 430 2.5. Large Encoding Window 432 In a second large encoding window symbol representation, ENCODER RANK 433 is 18-bit long, and the maximum GENERATION/WINDOW SIZE is 2^18. 435 Figures 8 to 10 below illustrate systematic, coded, and recoded 436 symbol representations within an encoding window of size 2^18. 437 Systematic symbols are uncoded. Coded symbols are compact in form 438 and comprise a seed for coding coefficient generation. Recoded 439 symbols are general in form and comprise the coding coefficient 440 vectors explicitly (CODING COEFFICIENTS or CODING COEFFS). 442 0 1 2 3 443 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 444 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 445 | 1 |SYMBOLS| ENCODER RANK |SYMBOL(S) DATA | 446 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 447 | | 448 | SYMBOL(S) DATA continued | 449 | ... | 450 | | 451 +---------------------------------------------------------------+ 453 Figure 8: A systematic symbol representation. 455 0 1 2 3 456 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 457 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 458 | 2 |SYMBOLS| ENCODER RANK | SEED | 459 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 460 | | 461 | SYMBOL(S) DATA | 462 | ... | 463 | | 464 +---------------------------------------------------------------+ 466 Figure 9: A coded symbol representation. 468 0 1 2 3 469 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 470 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 471 | 3 |SYMBOLS| ENCODER RANK | CODING COEFFS | 472 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 473 | | 474 | CODING COEFFICIENTS continued | 475 | ... | 476 | | 477 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 478 | | 479 | SYMBOL(S) DATA | 480 | ... | 481 | | 482 +---------------------------------------------------------------+ 484 Figure 10: A recoded symbol representation. 486 3. Security Considerations 488 This document does not present new security considerations. 490 4. IANA Considerations 492 This document has no actions for IANA. 494 5. References 496 5.1. Normative References 498 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 499 Requirement Levels", BCP 14, RFC 2119, 500 DOI 10.17487/RFC2119, March 1997, 501 . 503 [RLNC-Background] 504 Heide, J., Shi, S., Fouli, K., Medard, M., and V. Chook, 505 "Random Linear Network Coding (RLNC): Background and 506 Practical Considerations", February 2018, 507 . 510 5.2. Informative References 512 [HK03] Ho, T., Koetter, R., Medard, M., Karger, D., and M. 513 Effros, "The Benefits of Coding over Routing in a 514 Randomized Setting", July 2003, 515 . 517 Authors' Addresses 519 Janus Heide 520 Steinwurf Aps 521 Aalborg 522 Denmark 524 Email: janus@steinwurf.com 526 Shirley Shi 527 Code On Network Coding LLC 528 Cambridge 529 USA 531 Email: xshi@alum.mit.edu 533 Kerim Fouli 534 Code On Network Coding LLC 535 Cambridge 536 USA 538 Email: fouli@codeontechnologies.com 540 Muriel Medard 541 Code On Network Coding LLC 542 Cambridge 543 USA 545 Email: muriel.medard@codeontechnologies.com 546 Vince Chook 547 Inmarsat PLC 548 London 549 United Kingdom 551 Email: Vince.Chook@inmarsat.com