idnits 2.17.1 draft-heide-nwcrg-rlnc-02.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 (July 02, 2019) is 1760 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: January 3, 2020 K. Fouli 6 M. Medard 7 Code On Network Coding LLC 8 V. Chook 9 Inmarsat PLC 10 July 02, 2019 12 Random Linear Network Coding (RLNC)-Based Symbol Representation 13 draft-heide-nwcrg-rlnc-02 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 January 3, 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 . . . . . . . . . . . . . . . . . 4 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 vectors attached, and a compact form where a 144 seed is attached instead for the first symbol in the symbol 145 representation, and where subsequent coding vectors are deduced from 146 the first one. Different maximum generation and window size are 147 supported for RLNC encoding, recoding, and decoding. 149 To encode over a set of data symbols, a coding vector is first 150 generated, comprising a number of finite field elements as specified 151 by a GENERATION SIZE or WINDOW SIZE variable. For a generation based 152 code the GENERATION SIZE defines the number of original symbols in 153 each generation. For a window based code the window size specifies 154 the maximal number of symbols in the window over which coding can be 155 performed. In the case of systematic codes, systematic symbols 156 correspond to unit coding 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 vectors used to generate the ensuing SYMBOL(S) DATA. 170 0 1 2 3 171 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 172 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 173 | T |SYMBOLS| ENCODER RANK | SEED or CODING COEFFICIENTS | 174 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 175 | | 176 | SYMBOL(S) DATA | 177 | ... | 178 | | 179 +---------------------------------------------------------------+ 181 Figure 1: A general symbol representation design. 183 2.2. Field Types and Formats 185 The TYPE Flag (T) indicates if the symbol is systematic, coded, or 186 recoded, and has the following properties: 188 o 2 bits long. 190 o If the TYPE flag is '1', all symbols included in this symbol 191 representation are systematic or uncoded, with symbol index 192 starting from ENCODER RANK. This option allows for efficient 193 representation of systematic symbols. 195 o If the TYPE is '2', all symbols included in this symbol 196 representation are coded, with coding vectors generated using the 197 included SEED and the ENCODER RANK. Consequently, only the first 198 ENCODER RANK elements in the coding vector can be non-zero, 199 whereas the remaing elements (e.g. GENERATION SIZE - ENCODER 200 RANK) in the coding vector are zeros. This option allows for 201 compact and efficient representation of coded symbols, which may 202 also subsequently be recoded. 204 o If the TYPE is '3', all symbols included in this symbol 205 representation are either uncoded, coded or recoded. Each coding 206 vector included is composed of GENERATION SIZE or WINDOW SIZE 207 coefficients. 209 SYMBOLS indicates the number of symbols in the 'Symbol(s) Data' 210 field, and has the following properties: 212 o 4 bits long. A maximum number of 15 symbols are concatenated 213 within each symbol representation. 215 o The special case of SYMBOLS = 0 indicates that zero symbols are 216 included, and consequently the size of SYMBOLS(S) DATA is 0 bytes. 217 This can, for example, be used to implement a flush functionality 218 or ensure that protocol operations do not stop in certain case for 219 purely event-driven protocols. 221 ENCODER RANK represents the current rank of the encoder, and has the 222 following properties: 224 o MUST be no larger than generation/window size. 226 o If TYPE flag is '1', ENCODER RANK is the symbol index of the first 227 data symbol in this symbol representation. 229 o If TYPE flag is '2' or '3', ENCODER RANK is the number of data 230 symbols over which coding was performed for all coded symbols in 231 this symbol representation. 233 o Coded symbols can be generated before a generation or window is 234 filled. ENCODER RANK describes the number of original symbols 235 included in the coded symbol(s). 237 SEED is used to generate the coding coefficient vector(s) using a 238 pseudo-random number generator, for a compact form of the symbol 239 representation, and has the following properties: 241 o The SEED field is only present when TYPE flag is '2'. If TYPE is 242 '1' or '3', this field is absent. 244 o The pseudo-random generator MUST be seeded with this value and all 245 coding coefficient vectors are produced by the same generator. 246 For example, if ENCODER RANK is 12, then the coding vector for the 247 first symbol in this symbol representation is coefficients 0 248 through 11 generated by the pseudo-random generator seeded by 249 SEED, and coding vector for the second symbol in this symbol 250 representation is coefficients 12 through 23 generated by the 251 pseudo-random generator seeded by SEED. If generation/window size 252 is larger than ENCODER RANK, the remaining coefficients in the 253 coding vector are zero. 255 o To ensure that SEED can be interpreted correctly at the receiver, 256 the same pseudo-random number generator MUST be used by the sender 257 and a recoding or receiving node. Otherwise, more than one SEED 258 field would need to be used. 260 o 8 bits long. Thus, 256 different seed values can be served. One 261 SEED is used per symbol representation, each of which can contain 262 up to 15 symbols, all derived using the same SEED. For distinct 263 ENCODER RANKs, different coding vectors would be generated from 264 the same SEED, since only an ENCODER RANK number of coefficients 265 from the random generator is grouped as a coding coefficient 266 vector, before progressing to the next coding vector for the next 267 symbol in the symbol representation. Consequently, the maximal 268 number of coded symbols that can be generated for a generation 269 is |SEED| * |SYMBOLS| * |ENCODER RANK| which in the best case is 270 (2^8)*(2^4-1)*(2^10) ~ 2^22, which for all practical 271 considerations can be considered as an infinite number of coded 272 symbols. If all coded symbols that can be represented using a 273 SEED is exhausted, symbols where the coding vectors is included 274 can be sent instead. 276 o In the case where no random number generator is available, or 277 where its use is not desired, the coding coefficients can be 278 produced by other means, such as functions of the data, state of 279 the network, or the like, and transmitted explicitly by setting 280 the TYPE flag to '3' 282 CODING COEFFICIENTS field is a list of SYMBOLS number of coding 283 vectors used to generate the ensuing SYMBOL(S) DATA, and has the 284 following properties: 286 o The CODING COEFFICIENT field is only present when TYPE flag is 287 '3'. If TYPE is '1' or '2', this field is absent. 289 o Each coding vector includes ENCODER RANK number of coding 290 coefficients, each coding coefficient having a predetermined field 291 size. 293 2.3. Externally Specified Parameters Required 295 This section specifies parameters that are REQUIRED for the use of 296 this symbol representation but which are not included in the symbol 297 representation and therefore MUST be communicated by means of some 298 outer mecanism. Typically these parameters will be static throughout 299 the instantitaion of a protocol and can therefore be globally 300 defined. Consequently, there is little to gain by incorperating 301 these parameters into the representation but conversely it would add 302 additional overhead. 304 o Field polynomial, the underlying field over which coding is 305 performed. 307 o Pseudo Random Generator, used to generate coding vectors. 309 o Symbol Size, used to divide the original data into symbols. 311 o Generation Size or Window Size, for block and sliding window 312 codes, respectively. 314 o Small or large encoding window, this symbol representation 315 supports both a small and a large coding window, but the variant 316 used is not communicated. 318 2.4. Small Encoding Window 320 In a first small encoding window symbol representation, ENCODER RANK 321 is 10 bits long, and the maximum generation/window size is 2^10. 323 Figures 2 to 4 below illustrate systematic, coded, and recoded symbol 324 representations within an encoding window of size 2^10. Systematic 325 symbols are uncoded. Coded symbols are compact in form and comprise 326 a seed for coding coefficient generation. Recoded symbols are 327 general in form and comprise the coding coefficient vectors 328 explicitly. 330 0 1 2 3 331 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 332 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 333 | 1 |SYMBOLS| ENCODER RANK | SYMBOL(S) DATA | 334 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 335 | | 336 | SYMBOLS(S) DATA continued | 337 | ... | 338 | | 339 +---------------------------------------------------------------+ 341 Figure 2: A systematic symbol representation. 343 0 1 2 3 344 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 345 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 346 | 2 |SYMBOLS| ENCODER RANK | SEED |SYMBOL(S) DATA | 347 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 348 | | 349 | SYMBOL(S) DATA continued | 350 | ... | 351 | | 352 +---------------------------------------------------------------+ 354 Figure 3: A compact, coded symbol representation. 356 0 1 2 3 357 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 358 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 359 | 3 |SYMBOLS| ENCODER RANK | CODING COEFFICIENTS | 360 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 361 | | 362 | CODING COEFFICIENTS continued | 363 | ... | 364 | | 365 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 366 | | 367 | SYMBOL(S) DATA | 368 | ... | 369 | | 370 +---------------------------------------------------------------+ 372 Figure 4: A recoded symbol representation. 374 2.4.1. Examples 376 The following examples show different symbol representations for an 377 illustrative case where the symbol size is 2 bytes, generation/window 378 size is 8, and field size is 2^8. 380 Example 1: Three systematic symbols with ID 0, 1 and 2. As the TYPE 381 flag is '1' , SEED/CODING COEFFICIENTS is absent, and ENCODER RANK is 382 the symbol index of the first data symbol with ID 0 in this compact 383 symbol representation. 385 0 1 2 3 386 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 387 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 388 | 1 | 3 | 0 | Systematic Symbol 0 Data | 389 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 390 | Systematic Symbol 1 Data | Systematic Symbol 2 Data | 391 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 393 Figure 5: A symbol representation with 3 systematic, uncoded symbols. 395 Example 2: Two coded symbols using a compact representation. In this 396 example, TYPE is '2', the SEED to the pseudo-random number generator 397 shared by the sender and receiver is 4. The coding vector for Symbol 398 A is coefficients 0 to 7 generated by the pseudo-random number 399 generator, the coding vector for symbol B is coefficients 8 to 15 400 generated by the pseudo-random number generator. 402 0 1 2 3 403 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 404 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 405 | 2 | 2 | 8 | 4 | Coded Symbol A 406 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 407 Data | Coded Symbol B Data | 408 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 410 Figure 6: A symbol representation with 2 coded symbols. 412 Example 3: Two recoded symbols. Coefficients A0 to A7 constitute the 413 coding vector for Symbol A, coefficients B0 to B7 constitute the 414 coding vector for symbol B. In practical implementations, symbol 415 sizes are much larger than 2, leading to amortization of the coding 416 coefficient overheads. 418 0 1 2 3 419 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 420 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 421 | 3 | 2 | 8 | A0 | A1 | 422 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 423 | A2 | A3 | A4 | A5 | 424 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 425 | A6 | A7 | B0 | B1 | 426 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 427 | B2 | B3 | B4 | B5 | 428 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 429 | B6 | B7 | Coded Symbol A Data | 430 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 431 | Coded Symbol B Data | 432 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 434 Figure 7: A symbol representation with 2 recoded symbols having 435 coding coefficients attached. 437 2.5. Large Encoding Window 439 In a second large encoding window symbol representation, ENCODER RANK 440 is 18-bit long, and the maximum generation/window size is 2^18. 442 Figures 8 to 10 below illustrate systematic, coded, and recoded 443 symbol representations within an encoding window of size 2^18. 444 Systematic symbols are uncoded. Coded symbols are compact in form 445 and comprise a seed for coding coefficient generation. Recoded 446 symbols are general in form and comprise the coding coefficient 447 vectors explicitly (CODING COEFFICIENTS or CODING COEFFS). 449 0 1 2 3 450 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 451 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 452 | 1 |SYMBOLS| ENCODER RANK |SYMBOL(S) DATA | 453 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 454 | | 455 | SYMBOL(S) DATA continued | 456 | ... | 457 | | 458 +---------------------------------------------------------------+ 460 Figure 8: A systematic symbol representation. 462 0 1 2 3 463 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 464 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 465 | 2 |SYMBOLS| ENCODER RANK | SEED | 466 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 467 | | 468 | SYMBOL(S) DATA | 469 | ... | 470 | | 471 +---------------------------------------------------------------+ 473 Figure 9: A coded symbol representation. 475 0 1 2 3 476 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 477 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 478 | 3 |SYMBOLS| ENCODER RANK | CODING COEFFS | 479 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 480 | | 481 | CODING COEFFICIENTS continued | 482 | ... | 483 | | 484 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 485 | | 486 | SYMBOL(S) DATA | 487 | ... | 488 | | 489 +---------------------------------------------------------------+ 491 Figure 10: A recoded symbol representation. 493 3. Security Considerations 495 This document does not present new security considerations. 497 4. IANA Considerations 499 This document has no actions for IANA. 501 5. References 503 5.1. Normative References 505 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 506 Requirement Levels", BCP 14, RFC 2119, 507 DOI 10.17487/RFC2119, March 1997, 508 . 510 [RLNC-Background] 511 Heide, J., Shi, S., Fouli, K., Medard, M., and V. Chook, 512 "Random Linear Network Coding (RLNC): Background and 513 Practical Considerations", February 2018, 514 . 517 5.2. Informative References 519 [HK03] Ho, T., Koetter, R., Medard, M., Karger, D., and M. 520 Effros, "The Benefits of Coding over Routing in a 521 Randomized Setting", July 2003, 522 . 524 Authors' Addresses 526 Janus Heide 527 Steinwurf Aps 528 Aalborg 529 Denmark 531 Email: janus@steinwurf.com 533 Shirley Shi 534 Code On Network Coding LLC 535 Cambridge 536 USA 538 Email: xshi@alum.mit.edu 540 Kerim Fouli 541 Code On Network Coding LLC 542 Cambridge 543 USA 545 Email: fouli@codeontechnologies.com 547 Muriel Medard 548 Code On Network Coding LLC 549 Cambridge 550 USA 552 Email: muriel.medard@codeontechnologies.com 553 Vince Chook 554 Inmarsat PLC 555 London 556 United Kingdom 558 Email: Vince.Chook@inmarsat.com