From 4bfd864f10b68b71482b35c818559068ef8d5797 Mon Sep 17 00:00:00 2001 From: Thomas Voss Date: Wed, 27 Nov 2024 20:54:24 +0100 Subject: doc: Add RFC documents --- doc/rfc/rfc9273.txt | 1127 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1127 insertions(+) create mode 100644 doc/rfc/rfc9273.txt (limited to 'doc/rfc/rfc9273.txt') diff --git a/doc/rfc/rfc9273.txt b/doc/rfc/rfc9273.txt new file mode 100644 index 0000000..bb27025 --- /dev/null +++ b/doc/rfc/rfc9273.txt @@ -0,0 +1,1127 @@ + + + + +Internet Research Task Force (IRTF) K. Matsuzono +Request for Comments: 9273 H. Asaeda +Category: Informational NICT +ISSN: 2070-1721 C. Westphal + Huawei + August 2022 + + + Network Coding for Content-Centric Networking / Named Data Networking: + Considerations and Challenges + +Abstract + + This document describes the current research outcomes in Network + Coding (NC) for Content-Centric Networking (CCNx) / Named Data + Networking (NDN) and clarifies the technical considerations and + potential challenges for applying NC in CCNx/NDN. This document is + the product of the Coding for Efficient Network Communications + Research Group (NWCRG) and the Information-Centric Networking + Research Group (ICNRG). + +Status of This Memo + + This document is not an Internet Standards Track specification; it is + published for informational purposes. + + This document is a product of the Internet Research Task Force + (IRTF). The IRTF publishes the results of Internet-related research + and development 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 Internet + Research Task Force (IRTF). Documents approved for publication by + the IRSG are not candidates for any level of Internet 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 be obtained at + https://www.rfc-editor.org/info/rfc9273. + +Copyright Notice + + Copyright (c) 2022 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. + +Table of Contents + + 1. Introduction + 2. Terminology + 2.1. Definitions Related to NC + 2.2. Definitions Related to CCNx/NDN + 3. CCNx/NDN Basics + 4. NC Basics + 5. Advantages of NC and CCNx/NDN + 6. Technical Considerations + 6.1. Content Naming + 6.1.1. Unique Naming for NC Packets + 6.1.2. Nonunique Naming for NC Packets + 6.2. Transport + 6.2.1. Scope of NC + 6.2.2. Consumer Operation + 6.2.3. Forwarder Operation + 6.2.4. Producer Operation + 6.2.5. Backward Compatibility + 6.3. In-Network Caching + 6.4. Seamless Consumer Mobility + 7. Challenges + 7.1. Adoption of Convolutional Coding + 7.2. Rate and Congestion Control + 7.3. Security + 7.4. Routing Scalability + 8. IANA Considerations + 9. Security Considerations + 10. Informative References + Acknowledgments + Authors' Addresses + +1. Introduction + + Information-Centric Networking (ICN), in general, and Content-Centric + Networking (CCNx) [1] or Named Data Networking (NDN) [2], in + particular, have emerged as a novel communication paradigm that + advocates for the retrieval of data based on their names. This + paradigm pushes content awareness into the network layer. It is + expected to enable consumers to obtain the content they desire in a + straightforward and efficient manner from the heterogenous networks + they may be connected to. The CCNx/NDN architecture has introduced + innovative ideas and has stimulated research in a variety of areas, + such as in-network caching, name-based routing, multipath transport, + and content security. One key benefit of requesting content by name + is that it eliminates the requirement to establish a session between + the client and a specific server, and the content can thereby be + retrieved from multiple sources. + + In parallel, there has been a growing interest in both academia and + industry for better understanding the fundamental aspects of Network + Coding (NC) toward enhancing key system performance metrics, such as + data throughput, robustness and reduction in the required number of + transmissions through connected networks, and redundant transmission + on broadcast or point-to-multipoint connections. NC is a technique + that is typically used for encoding packets to recover from lost + source packets at the receiver and for effectively obtaining the + desired information in a fully distributed manner. In addition, in + terms of security aspects, NC can be managed using a practical + security scheme that deals with pollution attacks [3] and can be + utilized for preventing eavesdroppers from obtaining meaningful + information [4] or protecting a wireless video stream while retaining + the NC benefits [5] [6]. + + From the perspective of the NC transport mechanism, NC can be divided + into two major categories: coherent NC and noncoherent NC [7] [8]. + In coherent NC, the source and destination nodes know the exact + network topology and the coding operations available at intermediate + nodes. When multiple consumers are attempting to receive the same + content, such as live video streaming, coherent NC could enable + optimal throughput by sending the content flow over the constructed + optimal multicast trees [9]. However, it requires a fully adjustable + and specific routing mechanism and a large computational capacity for + central coordination. In the case of noncoherent NC, which often + uses Random Linear Coding (RLC), it is not necessary to know the + network topology nor the intermediate coding operations [10]. As + noncoherent NC works in a completely independent and decentralized + manner, this approach is more feasible in terms of eliminating such a + central coordination. + + NC combines multiple packets together with parts of the same content + and may do this at the source and/or at other nodes in the network. + Network coded packets are not associated with a specific server, as + they may have been combined within the network. As NC is focused on + what information should be encoded in a network packet instead of the + specific host at which it has been generated, it is in line with the + architecture of the CCNx/NDN core networking layer. NC allows for + recovery of missing packets by encoding the information across + several packets. ICN is synergistic with NC, as it allows for + caching of data packets throughout the network. In a typical network + that uses NC, the sender must transmit enough packets to retrieve the + original data. ICN offers an opportunity to retrieve network-coded + packets directly from caches in the network, making the combination + of ICN and NC particularly effective. In fact, NC has already been + implemented for information/content dissemination [11] [12] [13]. + Montpetit et al. first suggested that NC techniques be exploited to + enhance key aspects of system performance in ICN [14]. Although + CCNx/NDN excels to exploit the benefits of NC (as described in + Section 5), some technical considerations are needed to combine NC + and CCNx/NDN owing to the unique features of CCNx/NDN (as described + in Section 6). + + In this document, we consider how NC can be applied to the CCNx/NDN + architecture and describe the technical considerations and potential + challenges for making CCNx/NDN-based communications better using the + NC technology. It should be noted that the presentation of specific + solutions (e.g., NC optimization methods) for enhancing CCNx/NDN + performance metrics by exploiting NC is outside the scope of this + document. + + This document represents the collaborative work and consensus of the + Coding for Efficient Network Communications Research Group (NWCRG) + and the Information-Centric Networking Research Group (ICNRG). This + document was read and reviewed by all the active research group + members. It is not an IETF product and is not a standard. + +2. Terminology + +2.1. Definitions Related to NC + + This section provides the terms related to NC used in this document, + which are defined in RFC 8406 [15] and produced by the NWCRG. + + Source Packet: + A packet originating from the source that contributes to one or + more source symbols. The source symbol is a unit of data + originating from the source that is used as input to encoding + operations. For instance, a Real-time Transport Protocol (RTP) + packet as a whole can constitute a source symbol. In other + situations (e.g., to address variable size packets), a single RTP + packet may contribute to various source symbols. + + Repair Packet: + A packet containing one or more coded symbols (also called repair + symbol). The coded symbol or repair symbol is a unit of data that + is the result of a coding operation, applied either to source + symbols or (in case of recoding) source and/or coded symbols. + When there is a single repair symbol per repair packet, a repair + symbol corresponds to a repair packet. + + Encoding versus Recoding versus Decoding: + Encoding is an operation that takes source symbols as input and + produces encoding symbols (source or coded symbols) as output. + Recoding is an operation that takes encoding symbols as input and + produces encoding symbols as output. Decoding is an operation + that takes encoding symbols as input and produces source symbols + as output. + + The terms regarding coding types are defined as follows: + + Random Linear Coding (RLC): + A particular form of linear coding using a set of random coding + coefficients. Linear coding performs a linear combination of a + set of input symbols (i.e., source and/or coded symbols) using a + given set of coefficients and results in a repair symbol. + + Block Coding: + A coding technique wherein the input flow(s) must be first + segmented into a sequence of blocks. Encoding and decoding are + performed independently on a per-block basis. + + Sliding Window Coding or Convolutional Coding: + A general class of coding techniques that rely on a sliding + encoding window. An encoding window is a set of source (and coded + in the case of recoding) symbols used as input to the coding + operations. The set of symbols change over time, as the encoding + window slides over the input flow(s). This is an alternative + solution to block coding. + + Fixed or Elastic Sliding Window Coding: + A coding technique that generates coded symbol(s) 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 time (also + known as "Elastic Sliding Window"). For instance, the size may + depend on acknowledgments sent by the receiver(s) for a particular + source symbol or source packet (received, decoded, or decodable). + + The terms regarding low-level coding aspects are defined as follows: + + Rank of the Linear System or Degrees of Freedom: + At a receiver, the number of linearly independent equations of the + linear system. It is also known as "Degrees of Freedom". The + system may be of "full rank", wherein decoding is possible, or + "partial rank", wherein only partial decoding is possible. + + Generation or 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 or Block Size: + With block codes, the number of source symbols belonging to a + block. It is equivalent to the number of source packets when + there is a single source symbol per source packet. + + Coding Coefficient: + With linear coding, this is a coefficient in a certain finite + field. This coefficient may be chosen in different ways: for + instance, randomly, in a predefined table or using a predefined + algorithm plus a seed. + + Coding Vector: + A set of coding coefficients used to generate a certain coded + symbol through linear coding. + + Finite Field: + Finite fields, used in linear codes, have the desired property of + having all elements (except zero) invertible for + and *, and no + operation over any elements can result in an overflow or + underflow. Examples of finite fields are prime fields + {0..p^(m-1)}, where p is prime. Most used fields use p=2 and are + called binary extension fields {0..2^(m-1)}, where m often equals + 1, 4, or 8 for practical reasons. + +2.2. Definitions Related to CCNx/NDN + + The terminology regarding CCNx/NDN used in this document is defined + in RFC 8793 [16], which was produced by the ICNRG. They are + consistent with the relevant documents ([17] [18]). + +3. CCNx/NDN Basics + + We briefly explain the key concepts of CCNx/NDN. In a CCNx/NDN + network, there are two types of packets at the network level: + interest and data packet (defined in Section 3.4 of [16]). The term + "content object", which means a unit of content data, is an alias to + data packet [16]. The ICN consumer (defined in Section 3.2 of [16]) + requests a content object by sending an interest that carries the + name of the data. + + Once an ICN forwarder (defined in Section 3.2 of [16]) receives an + interest, it performs a series of lookups. First, it checks if it + has a copy of the requested content object available in the cache + storage, called Content Store (CS) (defined in Section 3.3 of [16]). + If it does, it returns the data, and the transaction is considered to + have been successfully completed. + + If it does not have a copy of the requested content object in the CS, + it performs a lookup of the Pending Interest Table (PIT) (defined in + Section 3.3 of [16]) to check if there is already an outgoing + interest for the same content object. If there is no such interest, + then it creates an entry in the PIT that lists the name included in + the interest and the interfaces from which it received the interest. + This is later used to send the content object back, as interest + packets do not carry a source field that identifies the consumer. If + there is already a PIT entry for this name, it is updated with the + incoming interface of this new interest, and the interest is + discarded. + + After the PIT lookup, the interest undergoes a Forwarding Information + Base (FIB) (defined in Section 3.3 of [16]) lookup for selecting an + outgoing interface. The FIB lists name prefixes and their + corresponding forwarding interfaces in order to send the interest + toward a forwarder that possesses a copy of the requested data. + + Once a copy of the data is retrieved, it is sent back to the + consumer(s) using the trail of PIT entries; forwarders remove the PIT + state every time that an interest is satisfied and may store the data + in their CS. + + Data packets carry some information for verifying data integrity and + origin authentication and, in particular, that the data is indeed + that which corresponds to the name [19]. This is necessary because + authentication of the object is crucial in CCNx/NDN. However, this + step is optional at forwarders in order to speed up the processing. + + The key aspect of CCNx/NDN is that the consumer of the content does + not establish a session with a specific server. Indeed, the + forwarder or producer (defined in Section 3.2 of [16]) that returns + the content object is not aware of the network location of the + consumer, and the consumer is not aware of the network location of + the node that provides the content. This, in theory, allows the + interests to follow different paths within a network or even to be + sent over completely different networks. + +4. NC Basics + + While the forwarding node simply relays received data packets in + conventional IP communication networks, NC allows the node to combine + some data packets that are already received into one or several + output packets to be sent. In this section, we simply describe the + basic operations of NC. Herein, we focus on RLC in a block coding + manner that is well known as a major coding technique. + + For simplicity, let us consider an example case of end-to-end coding + wherein a producer and consumer respectively perform encoding and + decoding for a content object. This end-to-end coding is regarded as + a special case of NC. The producer splits the content into several + blocks called generations. Encoding and decoding are performed + independently on a per-block (per-generation) basis. Let us assume + that each generation consists of K original source packets of the + same size. When the packets do not have the same size, zero padding + is added. In order to generate one repair packet within a certain + generation, the producer linearly combines K of the original source + packets, where additions and multiplications are performed using a + coding vector consisting of K coding coefficients that are randomly + selected in a certain finite field. The producer may respond to + interests to send the corresponding source packets and repair packets + in the content flow (called systematic coding), where the repair + packets are typically used for recovering lost source packets. + + Repair packets can also be used for performing encoding. If the + forwarding nodes know each coding vector and generation identifier + (hereinafter referred to as generation ID) of the received repair + packets, they may perform an encoding operation (called recoding), + which is the most distinctive feature of NC compared to other coding + techniques. + + At the consumer, decoding is performed by solving a set of linear + equations that are represented by the coding vectors of the received + source and repair packets (possibly only repair packets) within a + certain generation. In order to obtain all the source packets, the + consumer requires K linearly independent equations. In other words, + the consumer must receive at least K linearly independent data + packets (called innovative packets). As receiving a linearly + dependent data packet is not useful for decoding, recoding should + generate and provide innovative packets. One of the major benefits + of RLC is that, even for a small-sized finite field (e.g., q=2^8), + the probability of generating linearly dependent packets is + negligible [9]. + +5. Advantages of NC and CCNx/NDN + + Combining NC and CCNx/NDN can contribute to effective large-scale + content/information dissemination. They individually provide similar + benefits, such as throughput/capacity gain and robustness + enhancement. The difference between their approaches is that the + former considers content flow as algebraic information that is to be + combined [7], while the latter focuses on the content/information + itself at the networking layer. Because these approaches are + complementary and their combination would be advantageous, it is + natural to combine them. + + The name-based communication in CCNx/NDN enables consumers to obtain + requested content objects without establishing and maintaining end- + to-end communication channels between nodes. This feature + facilitates the exploitation of the in-network cache and multipath/ + multisource retrieval and also supports consumer mobility without the + need for updating the location information/identifier during handover + [1]. Furthermore, the name-based communication intrinsically + supports multicast communication because identical interests are + aggregated at the forwarders. + + NC can enable the CCNx/NDN transport system to effectively distribute + and cache the data associated with multipath data retrieval [14]. + Exploiting multipath data retrieval and in-network caching with NC + contributes to not only improving the cache hit rate but also + expanding the anonymity set of each consumer (the set of potential + routers that can serve a given consumer) [20]. The expansion makes + it difficult for adversaries to infer the content consumed by others + and thus contributes to improving cache privacy. Others also have + introduced some use cases of the application of NC in CCNx/NDN, such + as the cases of content dissemination with in-network caching [21] + [22] [23], seamless consumer mobility [24] [25], and low-latency low- + loss video streaming [26]. In this context, it is well worth + considering NC integration in CCNx/NDN. + +6. Technical Considerations + + This section presents the considerations for CCNx/NDN with NC in + terms of network architecture and protocol. This document focuses on + NC when employed in a block coding manner. + +6.1. Content Naming + + Naming content objects is as important for CCNx/NDN as naming hosts + is in the current-day Internet [19]. In this section, two possible + naming schemes are presented. + +6.1.1. Unique Naming for NC Packets + + Each source and repair packet (hereinafter referred to as NC packet) + may have a unique name, as each original content object has in CCNx/ + NDN and as PIT and CS operations typically require a unique name for + identifying the NC packet. As a method of naming an NC packet that + takes into account the feature of block coding, the coding vector and + the generation ID can be used as a part of the content object name. + As in [21], when the generation ID is "g-id", generation size is 4, + and coding vector is (1,0,0,0), the name could be /CCNx.com/video-A/ + g-id/1000. Some other identifiers and/or parameters related to the + encoding scheme can also be used as name components. For instance, + the encoding ID specifying the coding scheme may be used with + "enc-id", such as /CCNx.com/video-A/enc-id/g-id/1000, as defined in + the FEC Framework (FECFRAME) [27]. This naming scheme is simple and + can support the delivery of NC packets with exactly the same + operations in the PIT/CS as those for the content objects. + + If a content-naming schema, such as the one presented above, is used, + an interest requesting an NC packet may have the full name including + a generation ID and coding vector (/CCNx.com/video-A/g-id/1000) or + only the name prefix including only a generation ID (/CCNx.com/video- + A/g-id). In the former case, exact name matching to the PIT is + simply performed at data forwarders (as in CCNx/NDN). The consumer + is able to specify and retrieve an innovative packet necessary for + the consumer to decode successfully. This could shift the generation + of the coding vector from the data forwarder onto the consumer. + + In the latter case, partial name matching is required at the data + forwarders. As the interest with only the prefix name matches any NC + packet with the same prefix, the consumer could immediately obtain an + NC packet from a nearby CS (in-network cache) without knowing the + coding vectors of the cached NC packets in advance. In the case + wherein NC packets in transit are modified by in-network recoding + performed at forwarders, the consumer could also receive the modified + NC packets. However, in contrast to the former case, the consumer + may fail to obtain sufficient degrees of freedom (see Section 6.2.3). + To address this issue, a new TLV type in an interest message may be + required for specifying further coding information in order to limit + the NC packets to be received. For instance, this is enabled by + specifying the coding vectors of innovative packets for the consumer + (also called decoding matrix) as in [14]. This extension may incur + an interest packet of significantly increased size, and it may thus + be useful to use compression techniques for coding vectors [28] [29]. + Without such coding information provided by the interest, the + forwarder would be required to maintain some records regarding the + interest packets that were satisfied previously (see Section 6.2.3). + +6.1.2. Nonunique Naming for NC Packets + + An NC packet may have a name that indicates that it is an NC packet + and move the coding information into a metadata field in the payload + (i.e., the name includes the data type, source, or repair packet). + This would not be beneficial for applications or services that may + not need to understand the packet payload. Owing to the possibility + that multiple NC packets may have the same name, some mechanism is + required for the consumer to obtain innovative packets. As described + in Section 6.3, a mechanism for managing the multiple innovative + packets in the CS would also be required. In addition, extra + computational overhead would be incurred when the payload is being + encrypted. + +6.2. Transport + + The pull-based request-response feature of CCNx/NDN is a fundamental + principle of its transport layer; one interest retrieves, at most, + one data packet. This means that a forwarder or producer cannot + inject unrequested data packets on its own initiative. It is + believed that it is important that this rule not be violated, as 1) + it would open denial-of-service (DoS) attacks, 2) it invalidates + existing congestion control approaches following this rule, and 3) it + would reduce the efficiency of existing consumer mobility approaches. + Thus, the following basic operation should be considered for applying + NC to CCNx/NDN. Nevertheless, such security considerations must be + addressed if this rule were to be violated. + +6.2.1. Scope of NC + + An open question is whether a data forwarder can perform in-network + recoding with data packets that are being received in transit or if + only the data that matches an interest can be subject to NC + operations. In the latter case, encoding or recoding is performed to + generate the NC packet at any forwarder that is able to respond to + the interest. This could occur when each NC packet has a unique name + and interest has the full name. On the other hand, if interest has a + partial name without any coding vector information or multiple NC + packets have the same name, the former case may occur; recoding + occurs anywhere in the network where it is possible to modify the + received NC packet and forward it. As CCNx/NDN comprises mechanisms + for ensuring the integrity of the data during transfer, in-network + recoding introduces complexities in the network that needs + consideration for the integrity mechanisms to still work. Similarly, + in-network caching of NC packets at forwarders may be valuable; + however, the forwarders would require some mechanisms to validate the + NC packets (see Section 9). + +6.2.2. Consumer Operation + + To obtain NC benefits (possibly associated with in-network caching), + the consumer is required to issue interests that direct the forwarder + (or producer) to respond with innovative packets if available. In + the case where each NC packet may have a unique name (as described in + Section 6.1), by issuing an interest specifying a unique name with + g-id and the coding vector for an NC packet, the consumer could + appropriately receive an innovative packet if it is available at some + forwarders. + + In order to specify the exact name of the NC packet to be retrieved, + the consumer is required to know the valid naming scheme. From a + practical viewpoint, it is desirable for the consumer application to + automatically construct the right name components without depending + on any application specifications. To this end, the consumer + application may retrieve and refer to a manifest [17] that enumerates + the content objects, including NC packets, or may use some coding + scheme specifier as a name component to construct the name components + of interests to request innovative packets. + + Conversely, the consumer without decoding capability (e.g., specific + sensor node) may want to receive only the source packets. As + described in Section 6.1, because the NC packet can have a name that + is explicitly different from source packets, issuing interests for + retrieving source packets is possible. + +6.2.3. Forwarder Operation + + If the forwarder constantly responds to the incoming interests by + returning non-innovative packets, the consumer(s) cannot decode and + obtain the source packets. This issue could happen when 1) incoming + interests for NC packets do not specify some coding parameters, such + as the coding vectors to be used, and 2) the forwarder does not have + a sufficient number of linearly independent NC packets (possibly in + the CS) to use for recoding. In this case, the forwarder is required + to determine whether or not it can generate innovative packets to be + forwarded to the interface(s) at which the interests arrived. An + approach to deal with this issue is that the forwarder maintains a + tally of the interests for a specific name, generation ID, and the + incoming interface(s) in order to record how many degrees of freedom + have already been provided [21]. As such a scheme requires state + management (and potentially timers) in forwarders, scalability and + practicality must be considered. In addition, some transport + mechanism for in-network loss detection and recovery [25][26] at a + forwarder, as well as a consumer-driven mechanism, could be + indispensable for enabling fast loss recovery and realizing NC gains. + If a forwarder cannot either return a matching innovative packet from + its local content store, nor produce on the fly a recoded packet that + is innovative, it is important that the forwarder not simply return a + non-innovative packet but instead do a forwarding lookup in its FIB + and forward the interest toward the producer or upstream forwarder + that can provide an innovative packet. In this context, to retrieve + an innovative packet effectively and quickly, an appropriate setting + of the FIB and efficient interest-forwarding strategies should also + be considered. + + In another possible case, when receiving interests only for source + packets, the forwarder may attempt to decode and obtain all the + source packets and store them (if the full cache capacity are + available), thus enabling a faster response to subsequent interests. + As recoding or decoding results in an extra computational overhead, + the forwarder is required to determine how to respond to received + interests according to the use case (e.g., a delay-sensitive or + delay-tolerant application) and the forwarder situation, such as + available cache space and computational capability. + +6.2.4. Producer Operation + + Before performing NC for specified content in CCNx/NDN, the producer + is responsible for splitting the overall content into small content + objects to avoid packet fragmentation that could cause unnecessary + packet processing and degraded throughput. The size of the content + objects should be within the allowable packet size in order to avoid + packet fragmentation in a CCNx/NDN network. The producer performs + the encoding operation for a set of the small content objects and the + naming process for the NC packets. + + If the producer takes the lead in determining what coding vectors to + use in generating the NC packets, there are three general strategies + for naming and producing the NC packets: + + 1. Consumers themselves understand in detail the naming conventions + used for NC packets and thereby can send the corresponding + interests toward the producer to obtain NC packets whose coding + parameters have already been determined by the producer. + + 2. The producer determines the coding vectors and generates the NC + packets after receiving interests specifying the packets the + consumer wished to receive. + + 3. The naming scheme for specifying the coding vectors and + corresponding NC packets is explicitly represented via a + "Manifest" (e.g., FLIC [30]) that can be obtained by the consumer + and used to select among the available coding vectors and their + corresponding packets and thereby send the corresponding + interests. + + In the first case, although the consumers cannot flexibly specify a + coding vector for generating the NC packet to obtain, the latency for + obtaining the NC packet is less than in the latter two cases. For + the second case, there is a latency penalty for the additional NC + operations performed after receiving the interests. For the third + case, the NC packets to be included in the manifest must be pre- + computed by the producer (since the manifest references NC packets by + their hashes, not their names), but the producer can select which to + include in the manifest and produce multiple manifests either in + advance or on demand with different coding tradeoffs, if so desired. + + A common benefit of the first two approaches to end-to-end coding is + that, if the producer adds a signature on the NC packets, data + validation becomes possible throughout (as is the case with the CCNx/ + NDN operation in the absence of NC). The third approach of using a + manifest trades off the additional latency incurred by the need to + fetch the manifest against the efficiency of needing a signature only + on the manifest and not on each individual NC packet. + +6.2.5. Backward Compatibility + + NC operations should be applied in addition to the regular ICN + behavior and should function alongside regular ICN operations. + Hence, nodes that do not support NC should still be able to properly + handle packets, not only in being able to forward the NC packets but + also to cache these packets. An NC framework should be compatible + with a regular framework in order to facilitate backward + compatibility and smooth migration from one framework to the other. + +6.3. In-Network Caching + + Caching is a useful technique used for improving throughput and + latency in various applications. In-network caching in CCNx/NDN + essentially provides support at the network level and is highly + beneficial, owing to the involved exploitation of NC for enabling + effective multicast transmission [31], multipath data retrieval [21] + [24], and fast loss recovery [26]. However, there remain several + issues to be considered. + + There generally exist limitations in the CS capacity, and the caching + policy affects the consumer's performance [32] [33] [34]. It is thus + crucial for forwarders to determine which content objects should be + cached and which discarded. As delay-sensitive applications often do + not require an in-network cache for a long period, owing to their + real-time constraints, forwarders have to know the necessity for + caching received content objects to save the caching volume. In + CCNx, this could be made possible by setting a Recommended Cache Time + (RCT) in the optional header of the data packet at the producer side. + The RCT serves as a guideline for the CS cache in determining how + long to retain the content object. When the RCT is set as zero, the + forwarder recognizes that caching the content object is not useful. + Conversely, the forwarder may cache it when the RCT has a greater + value. In NDN, the TLV type of FreshnessPeriod could be used. + + One key aspect of in-network caching is whether or not forwarders can + cache NC packets in their CS. They may be caching the NC packets + without having the ability to perform a validation of the content + objects. Therefore, the caching of the NC packets would require some + mechanism to validate the NC packets (see Section 9). In the case + wherein the NC packets have the same name, it would also require some + mechanism to identify them. + +6.4. Seamless Consumer Mobility + + A key feature of CCNx/NDN is that it is sessionless, which enables + the consumer and forwarder to send multiple interests toward + different copies of the content in parallel, by using multiple + interfaces at the same time in an asynchronous manner. Through the + multipath data retrieval, the consumer could obtain the content from + multiple copies that are distributed while using the aggregate + capacity of multiple interfaces. For the link between the consumer + and the multiple copies, the consumer can perform a certain rate + adaptation mechanism for video streaming [24] or congestion control + for content acquisition [35]. + + NC adds a reliability layer to CCNx in a distributed and asynchronous + manner, because NC provides a mechanism for ensuring that the + interests sent to multiple copies of the content in parallel retrieve + innovative packets, even in the case of packet losses on some of the + paths/networks to these copies. This applies to consumer mobility + events [24], wherein the consumer could receive additional degrees of + freedom with any innovative packet if at least one available + interface exists during the mobility event. An interest-forwarding + strategy at the consumer (and possibly forwarder) for efficiently + obtaining innovative packets would be required for the consumer to + achieve seamless consumer mobility. + +7. Challenges + + This section presents several primary challenges and research items + to be considered when applying NC in CCNx/NDN. + +7.1. Adoption of Convolutional Coding + + Several block coding approaches have been proposed thus far; however, + there is still not sufficient discussion and application of the + convolutional coding approach (e.g., sliding or elastic window + coding) in CCNx/NDN. Convolutional coding is often appropriate for + situations wherein a fully or partially reliable delivery of + continuous data flows is required and especially when these data + flows feature real-time constraints. As in [36], on an end-to-end + coding basis, it would be advantageous for continuous content flow to + adopt sliding window coding in CCNx/NDN. In this case, the producer + is required to appropriately set coding parameters and let the + consumer know the information, and the consumer is required to send + interests augmented with feedback information regarding the data + reception and/or decoding status. As CCNx/NDN utilizes the hop-by- + hop forwarding state, it would be worth discussing and investigating + how convolutional coding can be applied in a hop-by-hop manner and + what benefits might accrue. In particular, in the case wherein in- + network recoding could occur at forwarders, both the encoding window + and CS management would be required, and the corresponding + feasibility and practicality should be considered. + +7.2. Rate and Congestion Control + + The addition of redundancy using repair packets may result in further + network congestion and could adversely affect the overall throughput. + In particular, in a situation wherein fair bandwidth sharing is more + desirable, each streaming flow must adapt to the network conditions + to fairly consume the available link bandwidth. It is thus necessary + that each content flow cooperatively implement congestion control to + adjust the consumed bandwidth [37]. From this perspective, an + effective deployment approach (e.g., a forwarder-supported approach + that can provide benefits under partial deployment) is required. + + As described in Section 6.4, NC can contribute to seamless consumer + mobility by obtaining innovative packets without receiving duplicated + packets through multipath data retrieval, and avoiding duplicated + packets has congestion control benefits as well. It can be + challenging to develop an effective rate and congestion control + mechanism in order to achieve seamless consumer mobility while + improving the overall throughput or latency by fully exploiting NC + operations. + +7.3. Security + + While CCNx/NDN introduces new security issues at the networking layer + that are different from the IP network, such as a cache poisoning, + pollution attacks, and a DoS attack using interest packets, some + security approaches are already provided [19] [38]. The application + of NC in CCNx/NDN brings two potential security aspects that need to + be dealt with. + + The first is in-network recoding at forwarders. Some mechanism for + ensuring the integrity of the NC packets newly produced by in-network + recoding is required in order for consumers or other forwarders to + receive valid NC packets. To this end, there are some possible + approaches described in Section 9, but there may be a more effective + method with lower complexity and computation overhead. + + The second is that attackers maliciously request and inject NC + packets, which could amplify some attacks. As NC packets are + unpopular in general use, they could be targeted by a cache pollution + attack that requests less popular content objects more frequently to + undermine popularity-based caching by skewing the content popularity. + Such an attack needs to be dealt with in order to maintain the in- + network cache efficiency. By injecting invalid NC packets with the + goal of filling the CSs at the forwarders with them, the cache + poisoning attack could be effectual depending on the exact integrity + coverage on NC packets. On the assumption that each NC packet has + the valid signature, the straightforward approach would comprise the + forwarders verifying the signature within the NC packets in transit + and only transmitting and storing the validated NC packets. However, + as performing a signature verification by the forwarders may be + infeasible at line speed, some mechanisms should be considered for + distributing and reducing the load of signature verification in order + to maintain in-network cache benefits, such as latency and network- + load reduction. + +7.4. Routing Scalability + + In CCNx/NDN, a name-based routing protocol without a resolution + process streamlines the routing process and reduces the overall + latency. In IP routing, the growth in the routing table size has + become a concern. It is thus necessary to use a hierarchical naming + scheme in order to improve the routing scalability by enabling the + aggregation of the routing information. + + To realize the benefits of NC, consumers need to efficiently obtain + innovative packets using multipath retrieval mechanisms of CCNx/NDN. + This would require some efficient routing mechanism to appropriately + set the FIB and also an efficient interest-forwarding strategy. Such + routing coordination may create routing scalability issues. It would + be challenging to achieve effective and scalable routing for + interests requesting NC packets, as well as to simplify the routing + process. + +8. IANA Considerations + + This document has no IANA actions. + +9. Security Considerations + + In-network recoding is a distinguishing feature of NC. Only valid NC + packets produced by in-network recoding must be requested and + utilized (and possibly stored). To this end, there exist some + possible approaches. First, as a signature verification approach, + the exploitation of multi-signature capability could be applied. + This allows not only the original content producer but also some + forwarders responsible for in-network recoding to have their own + unique signing key. Each forwarder of the group signs a newly + generated NC packet in order for other nodes to be able to validate + the data with the signature. The CS may verify the signature within + the NC packet before storing it to avoid invalid data caching. + Second, as a consumer-dependent approach, the consumer puts a + restriction on the matching rule using only the name of the requested + data. The interest ambiguity can be clarified by specifying both the + name and the key identifier (the producer's public key digest) used + for matching to the requested data. This KeyId restriction is built + in the CCNx design [17]. Only the requested data packet satisfying + the interest with the KeyId restriction would be forwarded and stored + in the CS, thus resulting in a reduction in the chances of cache + poisoning. Moreover, in the CCNx design, there exists the rule that + the CS obeys in order to avoid amplifying invalid data; if an + interest has a KeyId restriction, the CS must not reply unless it + knows that the signature on the matching content object is correct. + If the CS cannot verify the signature, the interest may be treated as + a cache miss and forwarded to the upstream forwarder(s). Third, as a + certificate chain management approach (possibly without certificate + authority), some mechanism, such as [39], could be used to establish + a trustworthy data delivery path. This approach adopts the hop-by- + hop authentication mechanism, wherein the forwarding-integrated hop- + by-hop certificate collection is performed to provide suspension + certificate chains such that the data retrieval is trustworthy. + + Depending on the adopted caching strategy, such as cache replacement + policies, forwarders should also take caution when storing and + retaining the NC packets in the CS, as they could be targeted by + cache pollution attacks. In order to mitigate the cache pollution + attacks' impact, forwarders should check the content request + frequencies to detect the attack and may limit requests by ignoring + some of the consecutive requests. The forwarders can then decide to + apply or change to the other cache replacement mechanism. + + The forwarders or producers require careful attention to the DoS + attacks aimed at provoking the high load of NC operations by using + the interests for NC packets. In order to mitigate such attacks, the + forwarders could adopt a rate-limiting approach. For instance, they + could monitor the PIT size growth for NC packets per content to + detect the attacks and limit the interest arrival rate when + necessary. If the NC application wishes to secure an interest + (considered as the NC actuator) in order to prevent such attacks, the + application should consider using an encrypted wrapper and an + explicit protocol. + +10. Informative References + + [1] Jacobson, V., Smetters, D., Thornton, J., Plass, M., + Briggs, N., and R. Braynard, "Networking Named Content", + Proc. CoNEXT, ACM, DOI 10.1145/1658939.1658941, December + 2009, . + + [2] Zhang, L., Afanasyev, A., Burke, J., Jacobson, V., Claffy, + K., Crowley, P., Papadopoulos, C., Wang, L., and B. Zhang, + "Named data networking", ACM SIGCOMM Computer + Communication Review, vol. 44, no. 3, + DOI 10.1145/2656877.2656887, July 2014, + . + + [3] Gkantsidis, C. and P. Rodriguez, "Cooperative Security for + Network Coding File Distribution", Proc. Infocom, IEEE, + DOI 10.1109/INFOCOM.2006.233, April 2006, + . + + [4] Cai, N. and R. Yeung, "Secure network coding", Proc. + International Symposium on Information Theory (ISIT), + IEEE, DOI 10.1109/ISIT.2002.1023595, June 2002, + . + + [5] Lima, L., Gheorghiu, S., Barros, J., Medard, M., and A. + Toledo, "Secure Network Coding for Multi-Resolution + Wireless Video Streaming", IEEE Journal of Selected Area + (JSAC), vol. 28, no. 3, DOI 10.1109/JSAC.2010.100409, + April 2010, . + + [6] Vilea, J., Lima, L., and J. Barros, "Lightweight security + for network coding", Proc. ICC, IEEE, + DOI 10.48550/arXiv.0807.0610, May 2008, + . + + [7] Koetter, R. and M. Medard, "An Algebraic Approach to + Network Coding", IEEE/ACM Transactions on Networking, vol. + 11, no. 5, DOI 10.1109/TNET.2003.818197, October 2003, + . + + [8] Vyetrenko, S., Ho, T., Effros, M., Kliewer, J., and E. + Erez, "Rate regions for coherent and noncoherent + multisource network error correction", Proc. International + Symposium on Information Theory (ISIT), IEEE, + DOI 10.1109/ISIT.2009.5206077, June 2009, + . + + [9] Wu, Y., Chou, P., and K. Jain, "A comparison of network + coding and tree packing", Proc. International Symposium on + Information Theory (ISIT), IEEE, + DOI 10.1109/ISIT.2004.1365182, June 2004, + . + + [10] Ho, T., Medard, M., Koetter, R., Karger, D., Effros, M., + Shi, J., and B. Leong, "A Random Linear Network Coding + Approach to Multicast", IEEE Trans. on Information Theory, + vol. 52, no. 10, DOI 10.1109/TIT.2006.881746, October + 2006, . + + [11] Dimarkis, A., Godfrey, P., Wu, Y., Wainwright, M., and K. + Ramchandran, "Network Coding for Distributed Storage + Systems", IEEE Trans. Information Theory, vol. 56, no.9, + DOI 10.1109/TIT.2010.2054295, September 2010, + . + + [12] Gkantsidis, C. and P. Rodriguez, "Network coding for large + scale content distribution", Proc. Infocom, IEEE, + DOI 10.1109/INFCOM.2005.1498511, March 2005, + . + + [13] Seferoglu, H. and A. Markopoulou, "Opportunistic Network + Coding for Video Streaming over Wireless", Proc. Packet + Video Workshop (PV), IEEE, + DOI 10.1109/PACKET.2007.4397041, November 2007, + . + + [14] Montpetit, M., Westphal, C., and D. Trossen, "Network + Coding Meets Information-Centric Networking: An + Architectural Case for Information Dispersion Through + Native Network Coding", Proc. Workshop on Emerging Name- + Oriented Mobile Networking Design (NoM), ACM, + DOI 10.1145/2248361.2248370, June 2012, + . + + [15] Adamson, B., Adjih, C., Bilbao, J., Firoiu, V., Fitzek, + F., Ghanem, S., Lochin, E., Masucci, A., Montpetit, M-J., + Pedersen, M., Peralta, G., Roca, V., Ed., Saxena, P., and + S. Sivakumar, "Taxonomy of Coding Techniques for Efficient + Network Communications", RFC 8406, DOI 10.17487/RFC8406, + June 2018, . + + [16] Wissingh, B., Wood, C., Afanasyev, A., Zhang, L., Oran, + D., and C. Tschudin, "Information-Centric Networking + (ICN): Content-Centric Networking (CCNx) and Named Data + Networking (NDN) Terminology", RFC 8793, + DOI 10.17487/RFC8793, June 2020, + . + + [17] Mosko, M., Solis, I., and C. Wood, "Content-Centric + Networking (CCNx) Semantics", RFC 8569, + DOI 10.17487/RFC8569, July 2019, + . + + [18] Mosko, M., Solis, I., and C. Wood, "Content-Centric + Networking (CCNx) Messages in TLV Format", RFC 8609, + DOI 10.17487/RFC8609, July 2019, + . + + [19] Kutscher, D., Ed., Eum, S., Pentikousis, K., Psaras, I., + Corujo, D., Saucez, D., Schmidt, T., and M. Waehlisch, + "Information-Centric Networking (ICN) Research + Challenges", RFC 7927, DOI 10.17487/RFC7927, July 2016, + . + + [20] Wu, Q., Li, Z., Tyson, G., Uhlig, S., Kaafar, M., and G. + Xie, "Privacy-Aware Multipath Video Caching for Content- + Centric Networks", IEEE Journal on Selected Areas in + Communications (JSAC), vol. 38, no. 8, + DOI 10.1109/JSAC.2016.2577321, June 2016, + . + + [21] Saltarin, J., Bourtsoulatze, E., Thomos, N., and T. Braun, + "NetCodCCN: a network coding approach for content-centric + networks", Proc. Infocom, IEEE, + DOI 10.1109/INFOCOM.2016.7524382, April 2016, + . + + [22] Wang, J., Ren, J., Lu, K., Wang, J., Liu, S., and C. + Westphal, "An Optimal Cache Management Framework for + Information-Centric Networks with Network Coding", Proc. + Networking Conference, IFIP/IEEE, + DOI 10.1109/IFIPNetworking.2014.6857127, June 2014, + . + + [23] Wang, J., Ren, J., Lu, K., Wang, J., Liu, S., and C. + Westphal, "A Minimum Cost Cache Management Framework for + Information-Centric Networks with Network Coding", + Computer Networks, Elsevier, + DOI 10.1016/j.comnet.2016.08.004, August 2016, + . + + [24] Ramakrishnan, A., Westphal, C., and J. Saltarin, "Adaptive + Video Streaming over CCN with Network Coding for Seamless + Mobility", Proc. International Symposium on Multimedia + (ISM), IEEE, DOI 10.1109/ISM.2016.0054, December 2016, + . + + [25] Carofiglio, G., Muscariello, L., Papalini, M., Rozhnova, + N., and X. Zeng, "Leveraging ICN In-network Control for + Loss Detection and Recovery in Wireless Mobile networks", + Proc. of the 3rd ACM Conference on Information-Centric + Networking, DOI 10.1145/2984356.2984361, September 2016, + . + + [26] Matsuzono, K., Asaeda, H., and T. Turletti, "Low Latency + Low Loss Streaming using In-Network Coding and Caching", + Proc. Infocom, IEEE, DOI 10.1109/INFOCOM.2017.8057026, May + 2017, . + + [27] Watson, M., Begen, A., and V. Roca, "Forward Error + Correction (FEC) Framework", RFC 6363, + DOI 10.17487/RFC6363, October 2011, + . + + [28] Thomos, N. and P. Frossard, "Toward One Symbol Network + Coding Vectors", IEEE Communications Letters, vol. 16, no. + 11, DOI 10.1109/LCOMM.2012.092812.121661, November 2012, + . + + [29] Lucani, D., Pedersen, M., Ruano, D., Sørensen, C., Heide, + J., Fitzek, F., and O. Geil, "Fulcrum Network Codes: A + Code for Fluid Allocation of Complexity", + DOI 10.48550/arXiv.1404.6620, April 2014, + . + + [30] Tschudin, C., Wood, C. A., Mosko, M., and D. Oran, "File- + Like ICN Collections (FLIC)", Work in Progress, Internet- + Draft, draft-irtf-icnrg-flic-03, 7 November 2021, + . + + [31] Maddah-Ali, M. and U. Niesen, "Coding for Caching: + Fundamental Limits and Practical Challenges", IEEE + Communications Magazine, vol. 54, no. 8, + DOI 10.1109/MCOM.2016.7537173, August 2016, + . + + [32] Perino, D. and M. Varvello, "A reality check for content + centric networking", Proc. SIGCOMM Workshop on + Information-centric networking (ICN '11), ACM, + DOI 10.1145/2018584.2018596, August 2011, + . + + [33] Podlipnig, S. and L. Böszörmenyi, "A Survey of Web Cache + Replacement Strategies", Proc. ACM Computing Surveys, vol. + 35, no. 4, DOI 10.1145/954339.954341, December 2003, + . + + [34] Rossini, G. and D. Rossi, "Evaluating CCN multi-path + interest forwarding strategies", Elsevier Computer + Communications, vol. 36, no. 7, + DOI 10.1016/j.comcom.2013.01.008, April 2013, + . + + [35] Mahdian, M., Arianfar, S., Gibson, J., and D. Oran, + "MIRCC: Multipath-aware ICN Rate-based Congestion + Control", Proc. Conference on Information-Centric + Networking (ICN), ACM, DOI 10.1145/2984356.2984365, + September 2016, . + + [36] Tournoux, P., Lochin, E., Lacan, J., Bouabdallah, A., and + V. Roca, "On-the-Fly Erasure Coding for Real-Time Video + Applications", IEEE Transactions on Multimedia, vol. 13, + no. 4, DOI 10.1109/TMM.2011.2126564, August 2011, + . + + [37] Kuhn, N., Lochin, E., Michel, F., and M. Welzl, "Forward + Erasure Correction (FEC) Coding and Congestion Control in + Transport", RFC 9265, DOI 10.17487/RFC9265, July 2022, + . + + [38] Pentikousis, K., Ed., Ohlman, B., Davies, E., Spirou, S., + and G. Boggia, "Information-Centric Networking: Evaluation + and Security Considerations", RFC 7945, + DOI 10.17487/RFC7945, September 2016, + . + + [39] Li, R., Asaeda, H., and J. Wu, "DCAuth: Data-Centric + Authentication for Secure In-Network Big-Data Retrieval", + IEEE Trans. on Network Science and Engineering, vol. 7, + no. 1, DOI 10.1109/TNSE.2018.2872049, September 2018, + . + +Acknowledgments + + The authors would like to thank ICNRG and NWCRG members, especially + Marie-Jose Montpetit, David Oran, Vincent Roca, and Thierry Turletti, + for their valuable comments and suggestions on this document. + +Authors' Addresses + + Kazuhisa Matsuzono + National Institute of Information and Communications Technology + 4-2-1 Nukui-Kitamachi, Tokyo + 184-8795 + Japan + Email: matsuzono@nict.go.jp + + + Hitoshi Asaeda + National Institute of Information and Communications Technology + 4-2-1 Nukui-Kitamachi, Tokyo + 184-8795 + Japan + Email: asaeda@nict.go.jp + + + Cedric Westphal + Huawei + 2330 Central Expressway + Santa Clara, California 95050 + United States of America + Email: cedric.westphal@futurewei.com, -- cgit v1.2.3