| < draft-irtf-nwcrg-nwc-ccn-reqs-07.txt | draft-irtf-nwcrg-nwc-ccn-reqs-08.txt > | |||
|---|---|---|---|---|
| Network Coding Research Group K. Matsuzono | Network Coding Research Group K. Matsuzono | |||
| Internet-Draft H. Asaeda | Internet-Draft H. Asaeda | |||
| Intended status: Informational NICT | Intended status: Informational NICT | |||
| Expires: April 27, 2022 C. Westphal | Expires: May 19, 2022 C. Westphal | |||
| Huawei | Huawei | |||
| October 24, 2021 | November 15, 2021 | |||
| Network Coding for Content-Centric Networking / Named Data Networking: | Network Coding for Content-Centric Networking / Named Data Networking: | |||
| Considerations and Challenges | Considerations and Challenges | |||
| draft-irtf-nwcrg-nwc-ccn-reqs-07 | draft-irtf-nwcrg-nwc-ccn-reqs-08 | |||
| Abstract | Abstract | |||
| This document describes the current research outcomes in Network | This document describes the current research outcomes in Network | |||
| Coding (NC) for Content-Centric Networking (CCNx) / Named Data | Coding (NC) for Content-Centric Networking (CCNx) / Named Data | |||
| Networking (NDN), and clarifies the technical considerations and | Networking (NDN), and clarifies the technical considerations and | |||
| potential challenges for applying NC in CCNx/NDN. This document is | potential challenges for applying NC in CCNx/NDN. This document is | |||
| the product of the Coding for Efficient Network Communications | the product of the Coding for Efficient Network Communications | |||
| Research Group (NWCRG) and the Information-Centric Networking | Research Group (NWCRG) and the Information-Centric Networking | |||
| Research Group (ICNRG). | Research Group (ICNRG). | |||
| skipping to change at page 1, line 39 ¶ | skipping to change at page 1, line 39 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on April 27, 2022. | This Internet-Draft will expire on May 19, 2022. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2021 IETF Trust and the persons identified as the | Copyright (c) 2021 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| skipping to change at page 2, line 35 ¶ | skipping to change at page 2, line 35 ¶ | |||
| 6.2.4. Producer Operation . . . . . . . . . . . . . . . . . 13 | 6.2.4. Producer Operation . . . . . . . . . . . . . . . . . 13 | |||
| 6.2.5. Backward Compatibility . . . . . . . . . . . . . . . 14 | 6.2.5. Backward Compatibility . . . . . . . . . . . . . . . 14 | |||
| 6.3. In-network Caching . . . . . . . . . . . . . . . . . . . 14 | 6.3. In-network Caching . . . . . . . . . . . . . . . . . . . 14 | |||
| 6.4. Seamless Consumer Mobility . . . . . . . . . . . . . . . 15 | 6.4. Seamless Consumer Mobility . . . . . . . . . . . . . . . 15 | |||
| 7. Challenges . . . . . . . . . . . . . . . . . . . . . . . . . 15 | 7. Challenges . . . . . . . . . . . . . . . . . . . . . . . . . 15 | |||
| 7.1. Adoption of Convolutional Coding . . . . . . . . . . . . 15 | 7.1. Adoption of Convolutional Coding . . . . . . . . . . . . 15 | |||
| 7.2. Rate and Congestion Control . . . . . . . . . . . . . . . 16 | 7.2. Rate and Congestion Control . . . . . . . . . . . . . . . 16 | |||
| 7.3. Security . . . . . . . . . . . . . . . . . . . . . . . . 16 | 7.3. Security . . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
| 7.4. Routing Scalability . . . . . . . . . . . . . . . . . . . 17 | 7.4. Routing Scalability . . . . . . . . . . . . . . . . . . . 17 | |||
| 8. Security Considerations . . . . . . . . . . . . . . . . . . . 17 | 8. Security Considerations . . . . . . . . . . . . . . . . . . . 17 | |||
| 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 19 | 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 18 | |||
| 10. Informative References . . . . . . . . . . . . . . . . . . . 19 | 10. Informative References . . . . . . . . . . . . . . . . . . . 19 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 22 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 22 | |||
| 1. Introduction | 1. Introduction | |||
| Information-Centric Networking (ICN) in general, and Content-Centric | Information-Centric Networking (ICN) in general, and Content-Centric | |||
| Networking (CCNx) [16] or Named Data Networking (NDN) [19] in | Networking (CCNx) [16] or Named Data Networking (NDN) [19] in | |||
| particular, have emerged as a novel communication paradigm advocating | particular, have emerged as a novel communication paradigm advocating | |||
| the retrieval of data based on their names. This paradigm pushes | the retrieval of data based on their names. This paradigm pushes | |||
| content awareness into the network layer. It is expected to enable | content awareness into the network layer. It is expected to enable | |||
| consumers to obtain the content they desire in a straightforward and | consumers to obtain the content they desire in a straightforward and | |||
| efficient manner from the heterogenous networks they may be connected | efficient manner from the heterogenous networks they may be connected | |||
| to. The CCNx/NDN architecture has introduced innovative ideas and | to. The CCNx/NDN architecture has introduced innovative ideas and | |||
| has stimulated research in a variety of areas, such as in-network | has stimulated research in a variety of areas, such as in-network | |||
| caching, name-based routing, multipath transport, content security. | caching, name-based routing, multipath transport, and content | |||
| One key benefit of requesting content by name is that it eliminates | security. One key benefit of requesting content by name is that it | |||
| the requirement of establishing a session between the client and a | eliminates the requirement to establish a session between the client | |||
| specific server, and the content can thereby be retrieved from | and a specific server, and the content can thereby be retrieved from | |||
| multiple sources. | multiple sources. | |||
| In parallel, there has been a growing interest in both academia and | In parallel, there has been a growing interest in both academia and | |||
| industry for better understanding the fundamental aspects of Network | industry for better understanding the fundamental aspects of Network | |||
| Coding (NC) toward enhancing key system performance metrics such as | Coding (NC) toward enhancing key system performance metrics such as | |||
| data throughput, robustness and reduction in the required number of | data throughput, robustness and reduction in the required number of | |||
| transmissions through connected networks, and redundant transmission | transmissions through connected networks, and redundant transmission | |||
| on broadcast or point-to-multipoint connections. NC is a technique | on broadcast or point-to-multipoint connections. NC is a technique | |||
| that is typically used for encoding packets to recover from lost | that is typically used for encoding packets to recover from lost | |||
| source packets at the receiver, and for effectively obtaining the | source packets at the receiver, and for effectively obtaining the | |||
| desired information in a fully distributed manner. In addition, NC | desired information in a fully distributed manner. In addition, in | |||
| can be used for security enhancements [2] [3] [4] [5]. | terms of security aspects, NC can be managed using a practical | |||
| security scheme that deals with pollution attacks [2], and can be | ||||
| utilized for preventing eavesdroppers from obtaining meaningful | ||||
| information [3] or protecting a wireless video stream while retaining | ||||
| the NC benefits [4] [5]. | ||||
| From the perspective of the NC transport mechanism, NC can be divided | From the perspective of the NC transport mechanism, NC can be divided | |||
| into two major categories: coherent NC, and non-coherent NC [39]. In | into two major categories: coherent NC, and non-coherent NC [38] | |||
| coherent NC, the source and destination nodes know the exact network | [39]. In coherent NC, the source and destination nodes know the | |||
| topology and the coding operations at intermediate nodes. When | exact network topology and the coding operations available at | |||
| multiple consumers are attempting to receive the same content such as | intermediate nodes. When multiple consumers are attempting to | |||
| live video streaming, coherent NC could enable optimal throughput by | receive the same content such as live video streaming, coherent NC | |||
| sending the content flow over the constructed optimal multicast trees | could enable optimal throughput by sending the content flow over the | |||
| [33]. However, it requires a fully adjustable and specific routing | constructed optimal multicast trees [32]. However, it requires a | |||
| mechanism, and a large computational capacity for central | fully adjustable and specific routing mechanism, and a large | |||
| coordination. In the case of non-coherent NC, that often comprises | computational capacity for central coordination. In the case of non- | |||
| the use of Random Linear Coding (RLC), it is not necessary to know | coherent NC, that often comprises the use of Random Linear Coding | |||
| the network topology nor the intermediate coding operations [34]. As | (RLC), it is not necessary to know the network topology nor the | |||
| non-coherent NC works in a completely independent and decentralized | intermediate coding operations [33]. As non-coherent NC works in a | |||
| manner, this approach is more feasible especially in the large-scale | completely independent and decentralized manner, this approach is | |||
| use cases. | more feasible in terms of eliminating such a central coordination. | |||
| NC combines multiple packets together with parts of the same content, | NC combines multiple packets together with parts of the same content, | |||
| and may do this at the source or at other nodes in the network. | and may do this at the source or at other nodes in the network. | |||
| Network coded packets are not associated with a specific server, as | Network coded packets are not associated with a specific server, as | |||
| they may have been combined within the network. As NC is focused on | 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 | 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 | specific host at which it has been generated, it is in line with the | |||
| architecture of the CCNx/NDN core networking layer. NC has already | architecture of the CCNx/NDN core networking layer. NC has already | |||
| been implemented for information/content dissemination [6] [7] [8]. | been implemented for information/content dissemination [6] [7] [8]. | |||
| Montpetit, et al., first suggested that NC techniques be exploited to | Montpetit, et al., first suggested that NC techniques be exploited to | |||
| skipping to change at page 4, line 24 ¶ | skipping to change at page 4, line 28 ¶ | |||
| 2. Terminology | 2. Terminology | |||
| This section provides the terms related to NC and CCNx/NDN used in | This section provides the terms related to NC and CCNx/NDN used in | |||
| this document. | this document. | |||
| 2.1. Definitions related to NC | 2.1. Definitions related to NC | |||
| The terms regarding NC used in this document are defined as follows. | The terms regarding NC used in this document are defined as follows. | |||
| These are aligned with RFCs produced by the FEC Framework (FECFRAME) | These are aligned with RFCs produced by the FEC Framework (FECFRAME) | |||
| IETF Working Groups as well as IRTF Coding for Efficient Network | IETF Working Groups as well as IRTF Coding for Efficient Network | |||
| Communications Research Group (NWCRG)[22]. | Communications Research Group (NWCRG)[21]. | |||
| o Source Symbol: A unit of data originating from the source that is | ||||
| used as input to encoding operations. | ||||
| o Coded Symbol, or Repair Symbol: A unit of data that is the result | ||||
| of a coding operation, applied either to source symbols or (in | ||||
| case of re-coding) source and/or coded symbols. | ||||
| o Source Packet: A packet originating from the source that | o Source Packet: A packet originating from the source that | |||
| contributes to one or more source symbols. The source symbol is a | 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 | unit of data originating from the source that is used as input to | |||
| encoding operations. For instance, a real-time transport protocol | encoding operations. For instance, a real-time transport protocol | |||
| (RTP) packet as a whole can constitute a source symbol. In other | (RTP) packet as a whole can constitute a source symbol. In other | |||
| situations (e.g., to address variable size packets), a single RTP | situations (e.g., to address variable size packets), a single RTP | |||
| packet may contribute to various source symbols. | packet may contribute to various source symbols. | |||
| o Coded Packet, or Repair Packet: A packet containing one or more | o Repair Packet: A packet containing one or more coded symbols (also | |||
| coded symbols (also called repair symbol). The coded symbol is a | called repair symbol). When there is a single repair symbol per | |||
| unit of data that is the result of a coding operation, applied | repair packet, a repair symbol corresponds to a repair packet. | |||
| either to source symbols or (in case of re-coding) source and/or | ||||
| coded symbols. When there is a single coded symbol per coded | ||||
| packet, a coded symbol corresponds to a coded packet. | ||||
| o Innovative Packet: A source or coded packet that increases the | o Innovative Packet: A source or repair packet that increases the | |||
| rank of the linear system (also called degrees of freedom) at a | rank of the linear system (also called degrees of freedom) at a | |||
| receiver. | receiver. | |||
| o Encoding versus Re-coding versus Decoding: Encoding is an | o Encoding versus Re-coding versus Decoding: Encoding is an | |||
| operation that takes source symbols as input and produces encoding | operation that takes source symbols as input and produces encoding | |||
| symbols (source or coded symbols) as output. Re-coding is an | symbols (source or coded symbols) as output. Re-coding is an | |||
| operation that takes encoding symbols as input and produces | operation that takes encoding symbols as input and produces | |||
| encoding symbols as output. Decoding is an operation takes | encoding symbols as output. Decoding is an operation takes | |||
| encoding symbols as input and produces source symbols as output. | encoding symbols as input and produces source symbols as output. | |||
| The terms regarding coding types are defined as follows: | The terms regarding coding types are defined as follows: | |||
| o Linear Coding: Linear combination of a set of input symbols (i.e., | ||||
| source and/or coded symbols) using a given set of coefficients and | ||||
| resulting in a repair symbol. | ||||
| o Random Linear Coding (RLC): A particular form of linear coding | o Random Linear Coding (RLC): A particular form of linear coding | |||
| using a set of random coding coefficients. Linear coding linearly | using a set of random coding coefficients. | |||
| combines a set of input source and/or coded symbols using a given | ||||
| set of coefficients and resulting in a coded symbol. Many linear | ||||
| codes exist that differ from the way coding coefficients are drawn | ||||
| from a finite field of a given size. | ||||
| o Block Coding: A coding technique wherein the input flow(s) must be | o Block Coding: A coding technique wherein the input flow(s) must be | |||
| first segmented into a sequence of blocks; encoding and decoding | first segmented into a sequence of blocks; encoding and decoding | |||
| are performed independently on a per-block basis. | are performed independently on a per-block basis. | |||
| o Sliding Window Coding or Convolutional Coding: A general class of | o Sliding Window Coding or Convolutional Coding: A general class of | |||
| coding techniques that rely on a sliding encoding window. | coding techniques that rely on a sliding encoding window. | |||
| Encoding window is a set of source (and coded in the case of re- | Encoding window is a set of source (and coded in the case of re- | |||
| coding) symbols used as input to the coding operations. The set | coding) symbols used as input to the coding operations. The set | |||
| of symbols change over time, as the encoding window slides over | of symbols change over time, as the encoding window slides over | |||
| skipping to change at page 6, line 32 ¶ | skipping to change at page 6, line 37 ¶ | |||
| called binary extension fields {0..2^m-1}, where m often equals 1, | called binary extension fields {0..2^m-1}, where m often equals 1, | |||
| 4 or 8 for practical reasons. | 4 or 8 for practical reasons. | |||
| o Finite Field size: The number of elements in a finite field. For | o Finite Field size: The number of elements in a finite field. For | |||
| example the binary extension field {0..2^m-1} has size q=2^m. | example the binary extension field {0..2^m-1} has size q=2^m. | |||
| 2.2. Definitions related to CCNx/NDN | 2.2. Definitions related to CCNx/NDN | |||
| The terminologies regarding CCNx/NDN used in this document are | The terminologies regarding CCNx/NDN used in this document are | |||
| defined in RFC8793 [17] produced by ICNRG. They are consistent with | defined in RFC8793 [17] produced by ICNRG. They are consistent with | |||
| the relevant documents ([1][18]). | the relevant documents ([1] [18]). | |||
| 3. CCNx/NDN Basics | 3. CCNx/NDN Basics | |||
| We briefly explain the key concepts of CCNx/NDN. Both protocols are | We briefly explain the key concepts of CCNx/NDN. In a CCNx/NDN | |||
| similar in principle, but differ in some architecture and protocol | network, there are two types of packets at the network level: | |||
| choices. | interest and data packet (defined in Section 3.4 of [17]). The term | |||
| of content object, which means a unit of content data, is an alias to | ||||
| In a CCNx network, there are two types of packets at the network | data packet [17]. The ICN consumer (defined in Section 3.2 of [17]) | |||
| level: interest and data packet (defined in Section 3.4 of [17]). | requests a content object by sending an interest that carries the | |||
| The term of content object, which means a unit of content data, is an | name of the data. | |||
| alias to data packet [17]. The ICN consumer (defined in Section 3.2 | ||||
| of [17]) requests a content object by sending an interest that | ||||
| carries the name of the data. One difference to note here between | ||||
| CCNx and NDN is that in CCNx [18], the interest is required to carry | ||||
| a full name, while in NDN [20], it may carry a name prefix (and | ||||
| receive in return any data with a name matching this prefix). | ||||
| Once an ICN forwarder (defined in Section 3.2 of [17]) receives an | Once an ICN forwarder (defined in Section 3.2 of [17]) receives an | |||
| interest, it performs a series of lookups: first it checks if it has | interest, it performs a series of lookups: first it checks if it has | |||
| a copy of the requested content object available in the Content Store | a copy of the requested content object available in the Content Store | |||
| (CS) (defined in Section 3.3 of [17]). If it does, it returns the | (CS) (defined in Section 3.3 of [17]). If it does, it returns the | |||
| data, and the transaction is considered to have been successfully | data, and the transaction is considered to have been successfully | |||
| completed. | completed. | |||
| If it does not have a copy of the requested content object in the CS, | 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 | it performs a lookup of the Pending Interest Table (PIT) (defined in | |||
| skipping to change at page 7, line 31 ¶ | skipping to change at page 7, line 30 ¶ | |||
| Base (FIB) (defined in Section 3.3 of [17]) lookup for selecting an | Base (FIB) (defined in Section 3.3 of [17]) lookup for selecting an | |||
| outgoing interface. The FIB lists name prefixes and their | outgoing interface. The FIB lists name prefixes and their | |||
| corresponding forwarding interfaces in order to send the interest | corresponding forwarding interfaces in order to send the interest | |||
| towards a forwarder that possesses a copy of the requested data. | towards a forwarder that possesses a copy of the requested data. | |||
| Once a copy of the data is retrieved, it is sent back to the | 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 | consumer(s) using the trail of PIT entries; forwarders remove the PIT | |||
| state every time that an interest is satisfied, and may store the | state every time that an interest is satisfied, and may store the | |||
| data in their CS. | data in their CS. | |||
| Data packets carry some information for validating the data, and in | Data packets carry some information for verifying data integrity and | |||
| particular, that the data is indeed that which corresponds to the | origin authentication, and in particular, that the data is indeed | |||
| name. This is necessary because authentication of the object is | that which corresponds to the name [24]. This is necessary because | |||
| crucial in CCNx/NDN. However, this step is optional at forwarders in | authentication of the object is crucial in CCNx/NDN. However, this | |||
| order to speed up the processing. | 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 | The key aspect of CCNx/NDN is that the consumer of the content does | |||
| not establish a session with a specific server. Indeed, the | not establish a session with a specific server. Indeed, the | |||
| forwarder or producer (defined in Section 3.2 of [17]) that returns | forwarder or producer (defined in Section 3.2 of [17]) that returns | |||
| the content object is not aware of the network location of the | 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 | consumer and the consumer is not aware of the network location of the | |||
| node that provides the content. This, in theory, allows the | node that provides the content. This, in theory, allows the | |||
| interests to follow different paths within a network or even to be | interests to follow different paths within a network or even to be | |||
| sent over completely different networks. | sent over completely different networks. | |||
| skipping to change at page 8, line 15 ¶ | skipping to change at page 8, line 15 ¶ | |||
| manner that is well known as a major coding technique. | manner that is well known as a major coding technique. | |||
| For simplicity, let us consider an example case of end-to-end coding | For simplicity, let us consider an example case of end-to-end coding | |||
| wherein a producer and consumer respectively perform encoding and | wherein a producer and consumer respectively perform encoding and | |||
| decoding for a content object. This end-to-end coding is regarded as | 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 | a special case of NC. The producer splits the content into several | |||
| blocks called generations. Encoding and decoding are performed | blocks called generations. Encoding and decoding are performed | |||
| independently on a per-block (per-generation) basis. Let us assume | independently on a per-block (per-generation) basis. Let us assume | |||
| that each generation consists of K original source packets of the | that each generation consists of K original source packets of the | |||
| same size. When the packets do not have the same size, zero padding | same size. When the packets do not have the same size, zero padding | |||
| is added. In order to generate one coded packet within a certain | is added. In order to generate one repair packet within a certain | |||
| generation, the producer linearly combines K of the original source | generation, the producer linearly combines K of the original source | |||
| packets, where additions and multiplications are performed using a | packets, where additions and multiplications are performed using a | |||
| coding vector consisting of K coding coefficients that are randomly | coding vector consisting of K coding coefficients that are randomly | |||
| selected in a certain finite field. The producer may respond to | selected in a certain finite field. The producer may respond to | |||
| interests to send the corresponding source packets and coded packets | interests to send the corresponding source packets and repair packets | |||
| in the content flow (called systematic coding), where the coded | in the content flow (called systematic coding), where the repair | |||
| packets (also called repair packets) are typically used for repairing | packets are typically used for recovering lost source packets. | |||
| lost source packets. | ||||
| Coded packets can also be used for performing encoding. If the | Repair packets can also be used for performing encoding. If the | |||
| forwarding nodes know each coding vector and generation identifier of | forwarding nodes know each coding vector and generation identifier of | |||
| the received coded packets, they may perform an encoding operation | the received repair packets, they may perform an encoding operation | |||
| (called re-coding), which is the most distinctie feature of NC | (called re-coding), which is the most distinctie feature of NC | |||
| compared to other coding techniques. | compared to other coding techniques. | |||
| At the consumer, decoding is performed by solving a set of linear | At the consumer, decoding is performed by solving a set of linear | |||
| equations that are represented by the coding vectors of the received | equations that are represented by the coding vectors of the received | |||
| coded packets within a certain generation. In order to obtain all | source and repair packets (possibly only repair packets) within a | |||
| the source packets, the consumer requires K linearly independent | certain generation. In order to obtain all the source packets, the | |||
| equations. In other words, the consumer must receive at least K | consumer requires K linearly independent equations. In other words, | |||
| linearly independent data packets (called innovative packets). As | the consumer must receive at least K linearly independent data | |||
| receiving a linearly dependent data packet is not useful for | packets (called innovative packets). As receiving a linearly | |||
| decoding, re-coding should generate and provide innovative packets. | dependent data packet is not useful for decoding, re-coding should | |||
| One of major benefits of RLC is that even for a small-sized finite | generate and provide innovative packets. One of major benefits of | |||
| field (e.g., q=2^8), the probability of generating linearly dependent | RLC is that even for a small-sized finite field (e.g., q=2^8), the | |||
| packets is negligible [33]. | probability of generating linearly dependent packets is negligible | |||
| [32]. | ||||
| 5. Advantages of NC and CCNx/NDN | 5. Advantages of NC and CCNx/NDN | |||
| Combining NC and CCNx/NDN can contribute to effective large-scale | Combining NC and CCNx/NDN can contribute to effective large-scale | |||
| content/information dissemination. They individually provide similar | content/information dissemination. They individually provide similar | |||
| benefits such as throughput/capacity gain and robustness enhancement. | benefits such as throughput/capacity gain and robustness enhancement. | |||
| The difference between their approaches is that, the former considers | The difference between their approaches is that, the former considers | |||
| content flow as algebraic information that is to be combined [21], | content flow as algebraic information that is to be combined [20], | |||
| while the latter focuses on the content/information itself at the | while the latter focuses on the content/information itself at the | |||
| networking layer. Because these approaches are complementary and | networking layer. Because these approaches are complementary and | |||
| their combination would be advantageous, it is natural to combine | their combination would be advantageous, it is natural to combine | |||
| them. | them. | |||
| The name-based communication in CCNx/NDN enables consumers to obtain | The name-based communication in CCNx/NDN enables consumers to obtain | |||
| requested content objects without establishing and maintaining end- | requested content objects without establishing and maintaining end- | |||
| to-end communication channels between nodes. This feature | to-end communication channels between nodes. This feature | |||
| facilitates the exploitation of the in-network cache and multipath/ | facilitates the exploitation of the in-network cache and multipath/ | |||
| multisource retrieval and also supports consumer mobility without the | multisource retrieval and also supports consumer mobility without the | |||
| need for updating the location information/identifier during handover | need for updating the location information/identifier during handover | |||
| [16]. Furthermore, the name-based communication intrinsically | [16]. Furthermore, the name-based communication intrinsically | |||
| supports multicast communication because identical interests are | supports multicast communication because identical interests are | |||
| aggregated at the forwarders. | aggregated at the forwarders. | |||
| NC can enable the CCNx/NDN transport system to effectively distribute | NC can enable the CCNx/NDN transport system to effectively distribute | |||
| and cache the data associated with multipath data retrieval [9]. | and cache the data associated with multipath data retrieval [9]. | |||
| Exploiting multipath data retrieval and in-network caching with NC | Exploiting multipath data retrieval and in-network caching with NC | |||
| contributes to not only improving the cache hit rate but also | contributes to not only improving the cache hit rate but also | |||
| expanding the anonymity set of each consumer (the set of potential | expanding the anonymity set of each consumer (the set of potential | |||
| routers that can serve a given consumer) [31]. The expansion makes | routers that can serve a given consumer) [30]. The expansion makes | |||
| it difficult for adversaries to infer the content consumed by others, | it difficult for adversaries to infer the content consumed by others, | |||
| and thus contributes to improving cache privacy. Others also have | and thus contributes to improving cache privacy. Others also have | |||
| introduced some use cases of the application of NC in CCNx/NDN, such | introduced some use cases of the application of NC in CCNx/NDN, such | |||
| as the cases of content dissemination with in-network caching [10] | as the cases of content dissemination with in-network caching [10] | |||
| [13] [14], seamless consumer mobility [11] [37], and low-latency low- | [13] [14], seamless consumer mobility [11] [36], and low-latency low- | |||
| loss video streaming [15]. In this context, it is well worth | loss video streaming [15]. In this context, it is well worth | |||
| considering NC integration in CCNx/NDN. | considering NC integration in CCNx/NDN. | |||
| 6. Technical Considerations | 6. Technical Considerations | |||
| This section presents the considerations for CCNx/NDN with NC in | This section presents the considerations for CCNx/NDN with NC in | |||
| terms of network architecture and protocol. This document focuses on | terms of network architecture and protocol. This document focuses on | |||
| NC when employed in a block coding manner. | NC when employed in a block coding manner. | |||
| 6.1. Content Naming | 6.1. Content Naming | |||
| Naming content objects is as important for CCNx/NDN as naming hosts | Naming content objects is as important for CCNx/NDN as naming hosts | |||
| is in the current-day Internet [25]. In this section, two possible | is in the current-day Internet [24]. In this section, two possible | |||
| naming schemes are presented. | naming schemes are presented. | |||
| Each coded packet may have a unique name as content objects (original | Each source and repair packet (hereinafter referred to as NC packet) | |||
| source packets) has in CCNx/NDN, as PIT/CS operations typically | may have a unique name as each original content object has in CCNx/ | |||
| require a unique name for identifying the coded packet. As a method | NDN, as PIT and CS (i.e., cache storage called content store) | |||
| of naming a coded packet, the coding vector and the identifier of the | operations typically require a unique name for identifying the NC | |||
| generation (also called block) can be used as a part of the content | packet. As a method of naming an NC packet that takes into account | |||
| object name. As in [10], when the generation ID is "g-id", | the feature of block coding, the coding vector and the identifier of | |||
| the generation (also called block) can be used as a part of the | ||||
| content object name. As in [10], when the generation ID is "g-id", | ||||
| generation size is 4, and coding vector is (1,0,0,0), the name could | 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 | 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 | parameters related to the encoding scheme can also be used as name | |||
| components. For instance, the encoding ID specifying the coding | components. For instance, the encoding ID specifying the coding | |||
| scheme may be used with "enc-id" such as /CCNx.com/video-A/enc-id/ | 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 | g-id/1000, as defined in the FEC Framework (FECFRAME) [26]. This | |||
| naming scheme is simple and can support the delivery of coded packets | 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 | with exactly the same operations in the PIT/CS as those for the | |||
| content objects. | content objects. | |||
| If a content-naming schema such as the one presented above is used, | If a content-naming schema such as the one presented above is used, | |||
| an interest requesting a coded packet may have the full name | an interest requesting an NC packet may have the full name including | |||
| including a generation id and coding vector (/CCNx.com/video-A/ | a generation id and coding vector (/CCNx.com/video-A/g-id/1000) or | |||
| g-id/1000) or only the name prefix including only a generation id | only the name prefix including only a generation id (/CCNx.com/video- | |||
| (/CCNx.com/video-A/g-id). In the former case, exact name matching to | A/g-id). In the former case, exact name matching to the PIT is | |||
| the PIT is simply performed at data forwarders (as in CCNx). The | simply performed at data forwarders (as in CCNx/NDN). The consumer | |||
| consumer is enabled to specify and retrieve an innovative packet | is able to specify and retrieve an innovative packet necessary for | |||
| necessary for the consumer to decode successfully. This could shift | the consumer to decode successfully. This could shift the generation | |||
| the generation of the coding vector from the data forwarder onto the | of the coding vector from the data forwarder onto the consumer. | |||
| consumer. | ||||
| In the latter case, partial name matching is required at the data | In the latter case, partial name matching is required at the data | |||
| forwarders (as in the case of NDN). As the interest with only the | forwarders. As the interest with only the prefix name matches any NC | |||
| prefix name matches any coded packet with the generation ID, the | packet with the same prefix, the consumer could immediately obtain an | |||
| consumer could immediately obtain an coded packet from a nearby CS | NC packet from a nearby CS (in-network cache) without knowing the | |||
| (in-network cache) without knowing the coding vectors of the cached | coding vectors of the cached NC packets in advance. In the case | |||
| coded packets in advance. In the case wherein coded packets in | wherein NC packets in transit are modified by in-network re-coding | |||
| transit are modified by in-network re-coding performed at forwarders, | performed at forwarders, the consumer could also receive the modified | |||
| the consumer could also receive the modified coded packets. However, | NC packets. However, in contrast to the former case, the consumer | |||
| in contrast to the former case, the consumer may fail to obtain | may fail to obtain sufficient degrees of freedom (see Section 6.2.3). | |||
| sufficient degrees of freedom (see Section 6.2.3). To address this | To address this issue, a new TLV type in an interest message may be | |||
| issue, a new TLV type in an interest message may be required for | required for specifying further coding information in order to limit | |||
| specifying further coding information in order to limit the coded | the NC packets to be received. For instance, this is enabled by | |||
| packets to be received. For instance, this is enabled by specifying | specifying the coding vectors of innovative packets for the consumer | |||
| the coding vectors of innovative packets for the consumer (also | (also called decoding matrix) as in [9]. This extension may incur an | |||
| called decoding matrix) as in [9]. This extension may incur an | ||||
| interest packet of significantly increased size, and it may thus be | interest packet of significantly increased size, and it may thus be | |||
| useful to use compression techniques for coding vectors [28] [29]. | useful to use compression techniques for coding vectors [27] [28]. | |||
| Without such coding information provided by the interest, the | Without such coding information provided by the interest, the | |||
| forwarder would be required to maintain some records regarding the | forwarder would be required to maintain some records regarding the | |||
| interest packets that were satisfied previously (See Section 6.2.3). | interest packets that were satisfied previously (See Section 6.2.3). | |||
| A coded packet may have a name that indicates that it is a coded | An NC packet may have a name that indicates that it is an NC packet, | |||
| packet, and move the coding information into a metadata field in the | and move the coding information into a metadata field in the payload | |||
| payload (i.e., the name includes the data type, source or coded | (i.e., the name includes the data type, source or repair packet). | |||
| packet). This would not be beneficial for applications or services | This would not be beneficial for applications or services that may | |||
| that may not need to understand the packet payload. Owing to the | not need to understand the packet payload. Owing to the possibility | |||
| possibility that multiple coded packets may have the same name, some | that multiple NC packets may have the same name, some mechanism is | |||
| mechanism is required for the consumer to obtain innovative packets. | required for the consumer to obtain innovative packets. As described | |||
| As described in Section 6.3, a mechanism for managing the multiple | in Section 6.3, a mechanism for managing the multiple innovative | |||
| innovative packets in the CS would also be required. In addition, | packets in the CS would also be required. In addition, extra | |||
| extra computational overhead would be incurred when the payload is | computational overhead would be incurred when the payload is being | |||
| being encrypted. | encrypted. | |||
| 6.2. Transport | 6.2. Transport | |||
| The pull-based request-response feature of CCNx/NDN is a fundamental | The pull-based request-response feature of CCNx/NDN is a fundamental | |||
| principle of its transport layer; one interest retrieves at most one | principle of its transport layer; one interest retrieves at most one | |||
| data packet. This property prevents consumer or forwarder to inject | data packet. This means that forwarder or producer cannot | |||
| large amounts of unrequested data into the network. It is believed | initiatively inject unrequested data. It is believed that it is | |||
| that it is important that this rule not be violated, as 1) it would | important that this rule not be violated, as 1) it would open denial- | |||
| open denial-of-service (DoS) attacks, 2) it invalidates existing | of-service (DoS) attacks, 2) it invalidates existing congestion | |||
| congestion control approaches following this rule, and 3) it would | control approaches following this rule, and 3) it would reduce the | |||
| reduce the efficiency of existing consumer mobility approaches. | efficiency of existing consumer mobility approaches. Thus, the | |||
| Thus, the following basic operation should be considered for applying | following basic operation should be considered for applying NC to | |||
| NC to CCNx/NDN. Nevertheless, such security considerations must be | CCNx/NDN. Nevertheless, such security considerations must be | |||
| addressed if this rule were to be violated. | addressed if this rule were to be violated. | |||
| 6.2.1. Scope of NC | 6.2.1. Scope of NC | |||
| An open question is whether data forwarder can perform in-network re- | An open question is whether data forwarder can perform in-network re- | |||
| coding with data packets that are being received in transit, or if | coding with data packets that are being received in transit, or if | |||
| only the data that matches an interest can be subject to NC | only the data that matches an interest can be subject to NC | |||
| operations. In the latter case, encoding or re-coding is performed | operations. In the latter case, encoding or re-coding is performed | |||
| to generate the coded packet at any forwarder that is able to respond | to generate the NC packet at any forwarder that is able to respond to | |||
| to the interest. This could occur when each coded packet has a | the interest. This could occur when each NC packet has a unique name | |||
| unique name and interest has the full name. On the other hand, if | and interest has the full name. On the other hand, if interest has a | |||
| interest has a partial name without any coding vector information or | partial name without any coding vector information or NC packets have | |||
| coded packets have a same name, the former case may occur; re-coding | a same name, the former case may occur; re-coding occurs anywhere in | |||
| occurs anywhere in the network where it is possible to modify the | the network where it is possible to modify the received NC packet and | |||
| received coded packet and forward it. As CCNx/NDN comprises | forward it. As CCNx/NDN comprises mechanisms for ensuring the | |||
| mechanisms for ensuring the integrity of the data during transfer, | integrity of the data during transfer, in-network re-coding | |||
| in-network re-coding introduces complexities in the network that | introduces complexities in the network that needs consideration for | |||
| needs consideration for the integrity mechanisms to still work. | the integrity mechanisms to still work. Similarly, in-network | |||
| Similarly, in-network caching of coded packets at forwarders may be | caching of NC packets at forwarders may be valuable; however, the | |||
| valuable; however, the forwarders would require some mechanisms to | forwarders would require some mechanisms to validate the NC packets | |||
| validate the coded packets (see Section 8). | (see Section 8). | |||
| 6.2.2. Consumer Operation | 6.2.2. Consumer Operation | |||
| To obtain NC benefits (possibly associated with in-network caching), | To obtain NC benefits (possibly associated with in-network caching), | |||
| the consumer is required to issue interests that direct the forwarder | the consumer is required to issue interests that direct the forwarder | |||
| (or producer) to respond with innovative packets if available. In | (or producer) to respond with innovative packets if available. In | |||
| the case where each coded packet may have a unique name (as described | the case where each NC packet may have a unique name (as described in | |||
| in Section 6.1), by issuing an interest specifying a unique name with | Section 6.1), by issuing an interest specifying a unique name with | |||
| g-id and the coding vector for a coded packet, the consumer could | g-id and the coding vector for an NC packet, the consumer could | |||
| appropriately receive an innovative packet if it is available at some | appropriately receive an innovative packet if it is available at some | |||
| forwarders. | forwarders. | |||
| In order to specify the exact name of the coded packet to be | In order to specify the exact name of the NC packet to be retrieved, | |||
| retrieved, the consumer is required to know the valid naming scheme. | the consumer is required to know the valid naming scheme. From a | |||
| From a practical viewpoint, it is desirable for the consumer | practical viewpoint, it is desirable for the consumer application to | |||
| application to automatically construct the right name components | automatically construct the right name components without depending | |||
| without depending on any application specifications. To this end, | on any application specifications. To this end, the consumer | |||
| the consumer application may retrieve and refer to a manifest [1] | application may retrieve and refer to a manifest [1] that enumerates | |||
| that enumerates the content objects including coded packets, or may | the content objects including NC packets, or may use some coding | |||
| use some coding scheme specifier as a name component to construct the | scheme specifier as a name component to construct the name components | |||
| name components of interests to request innovative packets. | of interests to request innovative packets. | |||
| Conversely, the consumer without decoding capability (e.g., specific | Conversely, the consumer without decoding capability (e.g., specific | |||
| sensor node) may want to receive only the source packets. As | sensor node) may want to receive only the source packets. As | |||
| described in Section 6.1, because the coded packet can have a name | described in Section 6.1, because the NC packet can have a name that | |||
| that is explicitly different from source packets, issuing interests | is explicitly different from source packets, issuing interests for | |||
| for retrieving source packets is possible. | retrieving source packets is possible. | |||
| 6.2.3. Forwarder Operation | 6.2.3. Forwarder Operation | |||
| If the forwarder constantly responds to the incoming interests by | If the forwarder constantly responds to the incoming interests by | |||
| returning non-innovative packets, the consumer(s) cannot decode and | returning non-innovative packets, the consumer(s) cannot decode and | |||
| obtain the source packets for all time. This issue could happen when | obtain the source packets. This issue could happen when 1) incoming | |||
| 1) incoming interests for coded packets do not specify some coding | interests for NC packets do not specify some coding parameters such | |||
| parameters such as the coding vectors to be used, and 2) the | as the coding vectors to be used, and 2) the forwarder does not have | |||
| forwarder does not have a sufficient number of linearly independent | a sufficient number of linearly independent NC packets (possibly in | |||
| source or coded packets (possibly in the CS) to use for re-coding. | the CS) to use for re-coding. In this case, the forwarder is | |||
| In this case, the forwarder is required to determine whether or not | required to determine whether or not it can generate innovative | |||
| it can generate innovative packets to be forwarded to the | packets to be forwarded to the interface(s) at which the interests | |||
| interface(s) at which the interests arrived. An approach to deal | arrived. An approach to deal with this issue is that the forwarder | |||
| with this issue is that the forwarder maintains a tally of the | maintains a tally of the interests for a specific name, generation ID | |||
| interests for a specific name, generation ID and the incoming | and the incoming interface(s), in order to record how many degrees of | |||
| interface(s), in order to record how many degrees of freedom have | freedom have already been provided [10]. As such a scheme requires | |||
| already been provided [10]. As such a scheme requires state | state management (and potentially timers) in forwarders, scalability | |||
| management (and potentially timers) in forwarders, scalability and | and practicality must be considered. In addition, some transport | |||
| practicality must be considered. In addition, some transport | mechanism for in-network loss detection and recovery [15] [36] at | |||
| mechanism for in-network loss detection and recovery [15] [37] at | ||||
| forwarder as well as a consumer-driven mechanism could be | forwarder as well as a consumer-driven mechanism could be | |||
| indispensable for enabling fast loss recovery and realising NC gains. | indispensable for enabling fast loss recovery and realising NC gains. | |||
| If a forwarder cannot either return a matching innovative packet from | If a forwarder cannot either return a matching innovative packet from | |||
| its local content store, nor produce on-the-fly a recoded packet that | 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 | is innovative, it is important that the forwarder not simply return a | |||
| non-innovative packet but instead do a forwarding lookup in its FIB | non-innovative packet but instead do a forwarding lookup in its FIB | |||
| and forward the Interest toward the producer or upstream forwarder | and forward the interest toward the producer or upstream forwarder | |||
| that can provide an innovative packet. In this context, to retrieve | that can provide an innovative packet. In this context, to retrieve | |||
| innovative packet effectively and quickly, an appropriate setting of | innovative packet effectively and quickly, an appropriate setting of | |||
| the FIB and efficient interest forwarding strategies should also be | the FIB and efficient interest forwarding strategies should also be | |||
| considered. | considered. | |||
| In another possible case, when receiving interests only for source | In another possible case, when receiving interests only for source | |||
| packets, the forwarder may attempt to decode and obtain all the | packets, the forwarder may attempt to decode and obtain all the | |||
| source packets and store them (if the full cache capacity are | source packets and store them (if the full cache capacity are | |||
| available), thus enabling a faster response to the interests. As re- | available), thus enabling a faster response to the interests. As re- | |||
| coding or decoding results in an extra computational overhead, the | coding or decoding results in an extra computational overhead, the | |||
| skipping to change at page 13, line 24 ¶ | skipping to change at page 13, line 21 ¶ | |||
| 6.2.4. Producer Operation | 6.2.4. Producer Operation | |||
| Before performing NC for specified content in CCNx/NDN, the producer | Before performing NC for specified content in CCNx/NDN, the producer | |||
| is responsible for splitting the overall content into small content | is responsible for splitting the overall content into small content | |||
| objects to avoid packet fragmentation that could cause unnecessary | objects to avoid packet fragmentation that could cause unnecessary | |||
| packet processing and degraded throughput. The size of the content | packet processing and degraded throughput. The size of the content | |||
| objects should be within the allowable packet size in order to avoid | objects should be within the allowable packet size in order to avoid | |||
| packet fragmentation in CCNx/NDN network. The producer performs the | packet fragmentation in CCNx/NDN network. The producer performs the | |||
| encoding operation for a set of the small content objects, and the | encoding operation for a set of the small content objects, and the | |||
| naming process for the coded packets. | naming process for the NC packets. | |||
| If the producer takes the lead in determining what coding vectors to | If the producer takes the lead in determining what coding vectors to | |||
| use in generating the coding packets, there are three general | use in generating the NC packets, there are three general strategies | |||
| strategies for naming and producing the coded packets: | for naming and producing the NC packets: | |||
| 1. consumers themselves understand in detail the naming conventions | 1. consumers themselves understand in detail the naming conventions | |||
| used for coded packets and thereby can send the corresponding | used for NC packets and thereby can send the corresponding | |||
| interests toward the producer to obtain coded packets whose | interests toward the producer to obtain NC packets whose coding | |||
| coding parameters have already been determined by the producer. | parameters have already been determined by the producer. | |||
| 2. the producer determines the coding vectors and generates the | 2. the producer determines the coding vectors and generates the NC | |||
| coded packets after receiving interests specifying the packets | packets after receiving interests specifying the packets the | |||
| the consumer wished to receive. | consumer wished to receive. | |||
| 3. The naming scheme for specifying the coding vectors and | 3. The naming scheme for specifying the coding vectors and | |||
| corresponding coded packets is explicitly represented via a | corresponding NC packets is explicitly represented via a | |||
| "Manifest" (e.g., FLIC [24]) that can be obtained by the consumer | "Manifest" (e.g., FLIC [23]) that can be obtained by the consumer | |||
| and used to select among the available coding vectors and their | and used to select among the available coding vectors and their | |||
| corresponding packets, and thereby send the corresponding | corresponding packets, and thereby send the corresponding | |||
| interests. | interests. | |||
| In the first case, although the consumers cannot flexibly specify a | In the first case, although the consumers cannot flexibly specify a | |||
| coding vector for generating the coded packet to obtain, the latency | coding vector for generating the NC packet to obtain, the latency for | |||
| for obtaining the coded packet is less than in the latter two cases. | obtaining the NC packet is less than in the latter two cases. For | |||
| For the second case, there is a latency penalty for the additional NC | the second case, there is a latency penalty for the additional NC | |||
| operations performed after receiving the interests. For the third | operations performed after receiving the interests. For the third | |||
| case, the coded packets to be included in the manifest must be pre- | case, the NC packets to be included in the manifest must be pre- | |||
| computed by the producer (since the manifest references coded packets | computed by the producer (since the manifest references NC packets by | |||
| by their hashes, not their names), but the producer can select which | their hashes, not their names), but the producer can select which to | |||
| to include the manifest, and produce multiple manifests either in | include the manifest, and produce multiple manifests either in | |||
| advance or on demand with different coding tradeoffs if so desired. | advance or on demand with different coding tradeoffs if so desired. | |||
| A common benefit the first two approaches to end-to-end coding is | A common benefit the first two approaches to end-to-end coding is | |||
| that if the producer adds a signature on the coded packets, data | that if the producer adds a signature on the NC packets, data | |||
| validation becomes possible throughout (as is the case with CCNx/NDN | validation becomes possible throughout (as is the case with CCNx/NDN | |||
| operation in the absence of NC). The third approach of using a | operation in the absence of NC). The third approach of using a | |||
| manifest trades off the additional latency incurred by the need to | manifest trades off the additional latency incurred by the need to | |||
| fetch the manifest against the efficiency of needing a signature only | fetch the manifest against the efficiency of needing a signature only | |||
| on the manifest and not on each individual coded packet. | on the manifest and not on each individual NC packet. | |||
| 6.2.5. Backward Compatibility | 6.2.5. Backward Compatibility | |||
| NC operations should be applied in addition to the regular network | NC operations should be applied in addition to the regular ICN | |||
| behavior. Hence, nodes should be able to not support network coding | behavior. Hence, nodes should be able to not support network coding | |||
| (not only in forwarding the packets, but also in the caching | (not only in forwarding the packets, but also in the caching | |||
| mechanism). NC operations should function alongside regular network | mechanism). NC operations should function alongside regular ICN | |||
| operations. An NC framework should be compatible with a regular | operations. An NC framework should be compatible with a regular | |||
| framework in order to facilitate backward compatibility and smooth | framework in order to facilitate backward compatibility and smooth | |||
| migration from one framework to the other. | migration from one framework to the other. | |||
| 6.3. In-network Caching | 6.3. In-network Caching | |||
| Caching is a useful technique used for improving throughput and | Caching is a useful technique used for improving throughput and | |||
| latency in various applications. In-network caching in CCNx/NDN | latency in various applications. In-network caching in CCNx/NDN | |||
| essentially provides support at network level and is highly | essentially provides support at network level and is highly | |||
| beneficial owing to the involved exploitation of NC for enabling | beneficial owing to the involved exploitation of NC for enabling | |||
| effective multicast transmission [38], multipath data retrieval [10] | effective multicast transmission [37], multipath data retrieval [10] | |||
| [11], fast loss recovery [15]. However, there remain several issues | [11], fast loss recovery [15]. However, there remain several issues | |||
| to be considered. | to be considered. | |||
| There generally exist limitations in the CS capacity, and the caching | There generally exist limitations in the CS capacity, and the caching | |||
| policy affects the consumer's performance [30] [35] [36]. It is thus | policy affects the consumer's performance [29] [34] [35]. It is thus | |||
| crucial for forwarders to determine which content objects should be | crucial for forwarders to determine which content objects should be | |||
| cached and which discarded. As delay-sensitive applications often do | cached and which discarded. As delay-sensitive applications often do | |||
| not require an in-network cache for a long period owing to their | not require an in-network cache for a long period owing to their | |||
| real-time constraints, forwarders have to know the necessity for | real-time constraints, forwarders have to know the necessity for | |||
| caching received content objects to save the caching volume. In | caching received content objects to save the caching volume. In | |||
| CCNx, this could be made possible by setting a Recommended Cache Time | 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. | (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 | 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 | long to retain the content object. When the RCT is set as zero, the | |||
| forwarder recognizes that caching the content object is not useful. | forwarder recognizes that caching the content object is not useful. | |||
| Conversely, the forwarder may cache it when the RCT has a greater | Conversely, the forwarder may cache it when the RCT has a greater | |||
| value. In NDN, the TLV type of FreshnessPeriod could be used. | value. In NDN, the TLV type of FreshnessPeriod could be used. | |||
| One key aspect of in-network caching is whether or not forwarders can | One key aspect of in-network caching is whether or not forwarders can | |||
| cache coded packets in their CS. They may be caching the coded | cache NC packets in their CS. They may be caching the NC packets | |||
| packets without having the ability to perform a validation of the | without having the ability to perform a validation of the content | |||
| content objects. Therefore, the caching of the coded packets would | objects. Therefore, the caching of the NC packets would require some | |||
| require some mechanism to validate the coded packets (see Section 8). | mechanism to validate the NC packets (see Section 8). In the case | |||
| In the case wherein the coded packets have the same name, it would | wherein the NC packets have the same name, it would also require some | |||
| also require some mechanism to identify them. | mechanism to identify them. | |||
| 6.4. Seamless Consumer Mobility | 6.4. Seamless Consumer Mobility | |||
| A key feature of CCNx/NDN is that it is sessionless, which enables | A key feature of CCNx/NDN is that it is sessionless, which enables | |||
| the consumer and forwarder to send multiple interests toward | the consumer and forwarder to send multiple interests toward | |||
| different copies of the content in parallel, by using multiple | different copies of the content in parallel, by using multiple | |||
| interfaces at the same time in an asynchronous manner. Through the | interfaces at the same time in an asynchronous manner. Through the | |||
| multipath data retrieval, the consumer could obtain the content from | multipath data retrieval, the consumer could obtain the content from | |||
| multiple copies that are distributed while using the aggregate | multiple copies that are distributed while using the aggregate | |||
| capacity of multiple interfaces. For the link between the consumer | capacity of multiple interfaces. For the link between the consumer | |||
| skipping to change at page 16, line 24 ¶ | skipping to change at page 16, line 22 ¶ | |||
| practicality should be considered. | practicality should be considered. | |||
| 7.2. Rate and Congestion Control | 7.2. Rate and Congestion Control | |||
| The addition of redundancy using repair packets may result in further | The addition of redundancy using repair packets may result in further | |||
| network congestion and could adversely affect the overall throughput. | network congestion and could adversely affect the overall throughput. | |||
| In particular, in a situation wherein fair bandwidth sharing is more | In particular, in a situation wherein fair bandwidth sharing is more | |||
| desirable, each streaming flow must adapt to the network conditions | desirable, each streaming flow must adapt to the network conditions | |||
| to fairly consume the available link bandwidth. It is thus necessary | to fairly consume the available link bandwidth. It is thus necessary | |||
| that each content flow cooperatively implement congestion control to | that each content flow cooperatively implement congestion control to | |||
| adjust the consumed bandwidth [23]. From this perspective, although | adjust the consumed bandwidth [22]. From this perspective, although | |||
| a forwarder-supported approach would be effective, an effective | a forwarder-supported approach would be effective, an effective | |||
| deployment approach that provides benefits under partial deployment | deployment approach that provides benefits under partial deployment | |||
| is required. | is required. | |||
| As described in Section 6.4, NC can contribute to seamless consumer | As described in Section 6.4, NC can contribute to seamless consumer | |||
| mobility by obtaining innovative packets without receiving duplicated | mobility by obtaining innovative packets without receiving duplicated | |||
| packets through multipath data retrieval. It can be challenging to | packets through multipath data retrieval. It can be challenging to | |||
| develop an effective rate and congestion control mechanism in order | develop an effective rate and congestion control mechanism in order | |||
| to achieve seamless consumer mobility while improving the overall | to achieve seamless consumer mobility while improving the overall | |||
| throughput or latency by fully exploiting NC operations. | throughput or latency by fully exploiting NC operations. | |||
| 7.3. Security | 7.3. Security | |||
| While CCNx/NDN introduces new security issues at the networking layer | While CCNx/NDN introduces new security issues at the networking layer | |||
| that are different from the IP network, such as a cache poisoning and | that are different from the IP network, such as a cache poisoning and | |||
| pollution attacks, a DoS attack using interest packets, some security | pollution attacks, a DoS attack using interest packets, some security | |||
| approaches are already provided [25] [26]. The application of NC in | approaches are already provided [24] [25]. The application of NC in | |||
| CCNx/NDN brings two potential security aspects that need to be dealt | CCNx/NDN brings two potential security aspects that need to be dealt | |||
| with. | with. | |||
| The first is in-network re-coding at forwarders. Some mechanism for | The first is in-network re-coding at forwarders. Some mechanism for | |||
| ensuring the integrity of the coded packets newly produced by in- | ensuring the integrity of the NC packets newly produced by in-network | |||
| network re-coding is required in order for consumers or other | re-coding is required in order for consumers or other forwarders to | |||
| forwarders to deal with valid coded packets. To this end, there are | receive valid NC packets. To this end, there are some possible | |||
| some possible approaches described in Section 8, but there may be | approaches described in Section 8, but there may be more effective | |||
| more effective method with lower complexity and computation overhead. | method with lower complexity and computation overhead. | |||
| The second is that attackers maliciously request and inject coded | The second is that attackers maliciously request and inject NC | |||
| packets, which could amplify some attacks. As coded packets are | packets, which could amplify some attacks. As NC packets are | |||
| unpopular in general use, they could be targeted by a cache pollution | unpopular in general use, they could be targeted by a cache pollution | |||
| attack that requests less popular content objects more frequently to | attack that requests less popular content objects more frequently to | |||
| undermine popularity-based caching by skewing the content popularity. | undermine popularity-based caching by skewing the content popularity. | |||
| Such an attack needs to be dealt with in order to maintain the in- | Such an attack needs to be dealt with in order to maintain the in- | |||
| network cache efficiency. By injecting invalid coded packets with | network cache efficiency. By injecting invalid NC packets with the | |||
| the goal of filling the CSs at the forwarders with them, the cache | goal of filling the CSs at the forwarders with them, the cache | |||
| poisoning attack could be effectual depending on the exact integrity | poisoning attack could be effectual depending on the exact integrity | |||
| coverage on coded packets. On the assumption that each coded packet | coverage on NC packets. On the assumption that each NC packet has | |||
| has the valid signature, the straightforward approach would comprise | the valid signature, the straightforward approach would comprise the | |||
| the forwarders verifying the signature within the coded packets in | forwarders verifying the signature within the NC packets in transit | |||
| transit and only transmitting and storing the validated coded | and only transmitting and storing the validated NC packets. However, | |||
| packets. However, as performing a signature verification by the | as performing a signature verification by the forwarders may be | |||
| forwarders may be infeasible at line speed, some mechanisms should be | infeasible at line speed, some mechanisms should be considered for | |||
| considered for distributing and reducing the load of signature | distributing and reducing the load of signature verification, in | |||
| verification, in order to maintain in-network cache benefits such as | order to maintain in-network cache benefits such as latency and | |||
| latency and network-load reduction. | network-load reduction. | |||
| 7.4. Routing Scalability | 7.4. Routing Scalability | |||
| In CCNx/NDN, a name-based routing protocol without a resolution | In CCNx/NDN, a name-based routing protocol without a resolution | |||
| process streamlines the routing process and reduces the overall | process streamlines the routing process and reduces the overall | |||
| latency. In IP routing, the growth in the routing table size has | latency. In IP routing, the growth in the routing table size has | |||
| become a concern. It is thus necessary to use a hierarchical naming | become a concern. It is thus necessary to use a hierarchical naming | |||
| scheme in order to improve the routing scalability by enabling the | scheme in order to improve the routing scalability by enabling the | |||
| aggregation of the routing information. | aggregation of the routing information. | |||
| To realize the benefits of NC, consumers need to efficiently obtain | To realize the benefits of NC, consumers need to efficiently obtain | |||
| innovative packets using multipath retrieval mechanisms of CCNx/NDN. | innovative packets using multipath retrieval mechanisms of CCNx/NDN. | |||
| This would require some efficient routing mechanism to appropriately | This would require some efficient routing mechanism to appropriately | |||
| set the FIB and also an efficient interest forwarding strategy. Such | set the FIB and also an efficient interest forwarding strategy. Such | |||
| routing coordination may create routing scalability issues. It would | routing coordination may create routing scalability issues. It would | |||
| be challenging to achieve effective and scalable routing for | be challenging to achieve effective and scalable routing for | |||
| interests requesting coded packets as well as to simplify the routing | interests requesting NC packets as well as to simplify the routing | |||
| process. | process. | |||
| 8. Security Considerations | 8. Security Considerations | |||
| In-network re-coding is a distinguishing feature of NC. Only valid | In-network re-coding is a distinguishing feature of NC. Only valid | |||
| coded packets produced by in-network re-coding must be requested and | NC packets produced by in-network re-coding must be requested and | |||
| utilized (and possibly stored). To this end, there exist some | utilized (and possibly stored). To this end, there exist some | |||
| possible approaches. First, as a signature verification approach, | possible approaches. First, as a signature verification approach, | |||
| the exploitation of multi-signature capability could be applied. | the exploitation of multi-signature capability could be applied. | |||
| This allows not only the original content producer but also some | This allows not only the original content producer but also some | |||
| forwarders responsible for in-network re-coding to have their own | forwarders responsible for in-network re-coding to have their own | |||
| unique signing key. Each forwarder of the group signs newly | unique signing key. Each forwarder of the group signs newly | |||
| generated coded packet in order for other nodes to be able to | generated NC packet in order for other nodes to be able to validate | |||
| validate the data with the signature. The CS may verify the | the data with the signature. The CS may verify the signature within | |||
| signature within the coded packet before storing it to avoid invalid | the NC packet before storing it to avoid invalid data caching. | |||
| data caching. Second, as a consumer-dependent approach, the consumer | ||||
| puts a restriction on the matching rule using only the name of the | Second, as a consumer-dependent approach, the consumer puts a | |||
| requested data. The interest ambiguity can be clarified by | restriction on the matching rule using only the name of the requested | |||
| specifying both the name and the key identifier (the producer's | data. The interest ambiguity can be clarified by specifying both the | |||
| public key digest) used for matching to the requested data. This | name and the key identifier (the producer's public key digest) used | |||
| KeyId restriction is built in the CCNx design [1]. Only the | for matching to the requested data. This KeyId restriction is built | |||
| requested data packet satisfying the interest with the KeyId | in the CCNx design [1]. Only the requested data packet satisfying | |||
| restriction would be forwarded and stored in the CS, thus resulting | the interest with the KeyId restriction would be forwarded and stored | |||
| in a reduction in the chances of cache poisoning. Moreover, in the | in the CS, thus resulting in a reduction in the chances of cache | |||
| CCNx design, there exists the rule that the CS obeys in order to | poisoning. Moreover, in the CCNx design, there exists the rule that | |||
| avoid amplifying invalid data; if an interest has a KeyID | the CS obeys in order to avoid amplifying invalid data; if an | |||
| restriction, the CS must not reply unless it knows that the signature | interest has a KeyID restriction, the CS must not reply unless it | |||
| on the matching content object is correct. If the CS cannot verify | knows that the signature on the matching content object is correct. | |||
| the signature, the interest may be treated as a cache miss and | If the CS cannot verify the signature, the interest may be treated as | |||
| forwarded to the upstream forwarder(s). Third, as a certificate | a cache miss and forwarded to the upstream forwarder(s). Third, as a | |||
| chain management approach (possibly without certificate authority), | certificate chain management approach (possibly without certificate | |||
| some mechanism such as [32] could be used to establish a trustworthy | authority), some mechanism such as [31] could be used to establish a | |||
| data delivery path. This approach adopts the hop-by-hop | trustworthy data delivery path. This approach adopts the hop-by-hop | |||
| authentication mechanism, wherein forwarding-integrated hop-by-hop | authentication mechanism, wherein forwarding-integrated hop-by-hop | |||
| certificate collection is performed to provide suspension certificate | certificate collection is performed to provide suspension certificate | |||
| chains such that the data retrieval is trustworthy. | chains such that the data retrieval is trustworthy. | |||
| Depending on the adopted caching strategy such as cache replacement | Depending on the adopted caching strategy such as cache replacement | |||
| policies, forwarders should also take caution when storing and | policies, forwarders should also take caution when storing and | |||
| retaining the coded packets in the CS as they could be targeted by | retaining the NC packets in the CS as they could be targeted by cache | |||
| cache pollution attacks. In order to mitigate the cache pollution | pollution attacks. In order to mitigate the cache pollution attacks' | |||
| attacks' impact, forwarders should check the content request | impact, forwarders should check the content request frequencies to | |||
| frequencies to detect the attack and may limit requests by ignoring | detect the attack and may limit requests by ignoring some of the | |||
| some of the consecutive requests. The forwarders can then decide to | consecutive requests. The forwarders can then decide to apply or | |||
| apply or change to the other cache replacement mechanism. | change to the other cache replacement mechanism. | |||
| The forwarders or producers require careful attention to the DoS | The forwarders or producers require careful attention to the DoS | |||
| attacks aiming at provoking the high load of NC operations by using | attacks aiming at provoking the high load of NC operations by using | |||
| the interests for coded packets. In order to mitigate such attacks, | the interests for NC packets. In order to mitigate such attacks, the | |||
| the forwarders could adopt a rate-limiting approach. For instance, | forwarders could adopt a rate-limiting approach. For instance, they | |||
| they could monitor the PIT size growth for coded data per content to | could monitor the PIT size growth for NC packets per content to | |||
| detect the attacks, and limit the interest arrival rate when | detect the attacks, and limit the interest arrival rate when | |||
| necessary. If the NC application wishes to secure an interest | necessary. If the NC application wishes to secure an interest | |||
| (considered as the NC actuator) in order to prevent such attacks, the | (considered as the NC actuator) in order to prevent such attacks, the | |||
| application should consider using an encrypted wrapper and an | application should consider using an encrypted wrapper and an | |||
| explicit protocol. | explicit protocol. | |||
| 9. Acknowledgements | 9. Acknowledgements | |||
| The authors would like to thank ICNRG and NWCRG members, especially | The authors would like to thank ICNRG and NWCRG members, especially | |||
| Marie-Jose Montpetit, David Oran, Vincent Roca, and Thierry Turletti, | Marie-Jose Montpetit, David Oran, Vincent Roca, and Thierry Turletti, | |||
| for their valuable comments and suggestions on this document. | for their valuable comments and suggestions on this document. | |||
| 10. Informative References | 10. Informative References | |||
| [1] Mosko, M. and et al., "Content-Centric Networking (CCNx) | [1] Mosko, M. and et al., "Content-Centric Networking (CCNx) | |||
| Semantics", RFC 8569, July 2019, | Semantics", RFC 8569, July 2019, | |||
| <https://tools.ietf.org/html/rfc8569>. | <https://tools.ietf.org/html/rfc8569>. | |||
| [2] Cai, N. and R. Yeung, "Secure network coding", Proc. | [2] Gkantsidis, C. and P. Rodriguez, "Cooperative Security for | |||
| Network Coding File Distribution", Proc. Infocom, IEEE, | ||||
| April 2006. | ||||
| [3] Cai, N. and R. Yeung, "Secure network coding", Proc. | ||||
| International Symposium on Information Theory | International Symposium on Information Theory | |||
| (ISIT), IEEE, June 2002. | (ISIT), IEEE, June 2002. | |||
| [3] Lima, L., Gheorghiu, S., Barros, J., Medard, M., and A. | [4] Lima, L., Gheorghiu, S., Barros, J., Medard, M., and A. | |||
| Toledo, "Secure Network Coding for Multi-Resolution | Toledo, "Secure Network Coding for Multi-Resolution | |||
| Wireless Video Streaming", IEEE Journal of Selected Area | Wireless Video Streaming", IEEE Journal of Selected Area | |||
| (JSAC), vol. 28, no. 3, April 2002. | (JSAC), vol. 28, no. 3, April 2010. | |||
| [4] Gkantsidis, C. and P. Rodriguez, "Cooperative Security for | ||||
| Network Coding File Distribution", Proc. Infocom, IEEE, | ||||
| April 2006. | ||||
| [5] Vilea, J., Lima, L., and J. Barros, "Lightweight security | [5] Vilea, J., Lima, L., and J. Barros, "Lightweight security | |||
| for network coding", Proc. ICC, IEEE, May 2008. | for network coding", Proc. ICC, IEEE, May 2008. | |||
| [6] Dimarkis, A., Godfrey, P., Wu, Y., Wainwright, M., and K. | [6] Dimarkis, A., Godfrey, P., Wu, Y., Wainwright, M., and K. | |||
| Ramchandran, "Network Coding for Distributed Storage | Ramchandran, "Network Coding for Distributed Storage | |||
| Systems", IEEE Trans. Information Theory, vol. 56, no.9, | Systems", IEEE Trans. Information Theory, vol. 56, no.9, | |||
| September 2010. | September 2010. | |||
| [7] Gkantsidis, C. and P. Rodriguez, "Network coding for large | [7] Gkantsidis, C. and P. Rodriguez, "Network coding for large | |||
| skipping to change at page 21, line 5 ¶ | skipping to change at page 20, line 47 ¶ | |||
| [18] Mosko, M. and et al., "Content-Centric Networking (CCNx) | [18] Mosko, M. and et al., "Content-Centric Networking (CCNx) | |||
| Messages in TLV Format", RFC 8609, July 2019, | Messages in TLV Format", RFC 8609, July 2019, | |||
| <https://tools.ietf.org/html/rfc8609>. | <https://tools.ietf.org/html/rfc8609>. | |||
| [19] Zhang, L., Afanasyev, A., Burke, J., Jacobson, V., Claffy, | [19] Zhang, L., Afanasyev, A., Burke, J., Jacobson, V., Claffy, | |||
| K., Crowley, P., Papadopoulos, C., Wang, L., and B. Zhang, | K., Crowley, P., Papadopoulos, C., Wang, L., and B. Zhang, | |||
| "Named data networking", ACM Comput. Commun. Rev., vol. | "Named data networking", ACM Comput. Commun. Rev., vol. | |||
| 44, no. 3, July 2014. | 44, no. 3, July 2014. | |||
| [20] NDN Packet Format, "NDN Packet Format Specification 0.3 | [20] Koetter, R. and M. Medard, "An Algebraic Approach to | |||
| documentation", Sept. 2019, | ||||
| <https://named-data.net/doc/NDN-packet-spec/current/>. | ||||
| [21] Koetter, R. and M. Medard, "An Algebraic Approach to | ||||
| Network Coding", IEEE/ACM Trans. on Networking, vol. 11, | Network Coding", IEEE/ACM Trans. on Networking, vol. 11, | |||
| no 5, Oct. 2003. | no 5, Oct. 2003. | |||
| [22] Adamson, B. and et al., "Taxonomy of Coding Techniques for | [21] Adamson, B. and et al., "Taxonomy of Coding Techniques for | |||
| Efficient Network Communications", RFC 8406, June 2018, | Efficient Network Communications", RFC 8406, June 2018, | |||
| <https://tools.ietf.org/html/rfc8406>. | <https://tools.ietf.org/html/rfc8406>. | |||
| [23] Kuhn, N., Lochin, E., Michel, F., and M. Welzl, "Coding | [22] Kuhn, N., Lochin, E., Michel, F., and M. Welzl, "Coding | |||
| and Congestion Control in Transport", Work in Progress, | and Congestion Control in Transport", Work in Progress, | |||
| draft-irtf-nwcrg-coding-and-congestion-09, June 2021. | draft-irtf-nwcrg-coding-and-congestion-09, June 2021. | |||
| [24] Tschudin, C., Wood, C., Mosko, M., and D. Oran, "File-Like | [23] Tschudin, C., Wood, C., Mosko, M., and D. Oran, "File-Like | |||
| ICN Collections (FLIC)", Work in Progress, draft-irtf- | ICN Collections (FLIC)", Work in Progress, draft-irtf- | |||
| icnrg-flic-02, Nov. 2019. | icnrg-flic-03, Nov. 2021. | |||
| [25] Kutscher, D. and et al., "Information-Centric Networking | [24] Kutscher, D. and et al., "Information-Centric Networking | |||
| (ICN) Research Challenges", RFC 7927, July 2016. | (ICN) Research Challenges", RFC 7927, July 2016. | |||
| [26] Pentikousis, K. and et al., "Information-Centric | [25] Pentikousis, K. and et al., "Information-Centric | |||
| Networking: Evaluation and Security Considerations", | Networking: Evaluation and Security Considerations", | |||
| RFC 7945, July 2019. | RFC 7945, July 2019. | |||
| [27] Watson, M. and et al., "Forward Error Correction (FEC) | [26] Watson, M. and et al., "Forward Error Correction (FEC) | |||
| Framework", RFC 6363, Oct. 2011. | Framework", RFC 6363, Oct. 2011. | |||
| [28] Thomos, N. and P. Frossard, "Toward one Symbol Network | [27] Thomos, N. and P. Frossard, "Toward one Symbol Network | |||
| Coding Vectors", IEEE Communications letters, vol. 16, no. | Coding Vectors", IEEE Communications letters, vol. 16, no. | |||
| 11, November 2012. | 11, November 2012. | |||
| [29] Lucani, D., Pedersen, M., Heide, J., and F. Fitzek, | [28] Lucani, D., Pedersen, M., Heide, J., and F. Fitzek, | |||
| "Fulcrum Network Codes: A Code for Fluid Allocation of | "Fulcrum Network Codes: A Code for Fluid Allocation of | |||
| Complexity", available at http://arxiv.org/abs/1404.6620, | Complexity", available at http://arxiv.org/abs/1404.6620, | |||
| April 2014. | April 2014. | |||
| [30] Perino, D. and M. Varvello, "A reality check for content | [29] Perino, D. and M. Varvello, "A reality check for content | |||
| centric networking", Proc. SIGCOMM Workshop on | centric networking", Proc. SIGCOMM Workshop on | |||
| Information-centric networking (ICN'11), ACM, August 2011. | Information-centric networking (ICN'11), ACM, August 2011. | |||
| [31] Wu, Q., Li, Z., Tyson, G., Uhlig, S., Kaafar, M., and G. | [30] Wu, Q., Li, Z., Tyson, G., Uhlig, S., Kaafar, M., and G. | |||
| Xie, "Privacy-Aware Multipath Video Caching for Content- | Xie, "Privacy-Aware Multipath Video Caching for Content- | |||
| Centric Networks", IEEE Journal of Selected Area | Centric Networks", IEEE Journal of Selected Area | |||
| (JSAC) vol. 38, no. 8, June 2016. | (JSAC) vol. 38, no. 8, June 2016. | |||
| [32] Li, R., Asaeda, H., and J. Wu, "DCAuth: Data-Centric | [31] Li, R., Asaeda, H., and J. Wu, "DCAuth: Data-Centric | |||
| Authentication for Secure In-Network Big-Data Retrieval", | Authentication for Secure In-Network Big-Data Retrieval", | |||
| IEEE Trans. on Network Science and Engineering vol. 7, no. | IEEE Trans. on Network Science and Engineering vol. 7, no. | |||
| 1, September 2018. | 1, September 2018. | |||
| [33] Wu, Y., Chou, P., and K. Jain, "A comparison of network | [32] Wu, Y., Chou, P., and K. Jain, "A comparison of network | |||
| coding and tree packing", Proc. ISIT, IEEE, June 2004. | coding and tree packing", Proc. ISIT, IEEE, June 2004. | |||
| [34] Ho, T., Medard, M., Koetter, R., Karger, R., Effros, D., | [33] Ho, T., Medard, M., Koetter, R., Karger, R., Effros, D., | |||
| Shi, M., and B. Leong, "A Random Linear Network Coding | Shi, M., and B. Leong, "A Random Linear Network Coding | |||
| Approach to Multicast", IEEE Trans. Information | Approach to Multicast", IEEE Trans. Information | |||
| Theory, vol. 52, no.10, October 2006. | Theory, vol. 52, no.10, October 2006. | |||
| [35] Podlipnig, S. and L. Osz, "A Survey of Web Cache | [34] Podlipnig, S. and L. Osz, "A Survey of Web Cache | |||
| Replacement Strategies", Proc. ACM Computing Surveys vol. | Replacement Strategies", Proc. ACM Computing Surveys vol. | |||
| 35, no. 4, December 2003. | 35, no. 4, December 2003. | |||
| [36] Rossini, G. and D. Rossi, "Evaluating CCN multi-path | [35] Rossini, G. and D. Rossi, "Evaluating CCN multi-path | |||
| interest forwarding strategies", Elsevier Computer | interest forwarding strategies", Elsevier Computer | |||
| Communication, vol.36, no. 7, April 2013. | Communication, vol.36, no. 7, April 2013. | |||
| [37] Carofiglio, G., Muscariello, L., Papalini, M., Rozhnova, | [36] Carofiglio, G., Muscariello, L., Papalini, M., Rozhnova, | |||
| N., and X. Zeng, "Leveraging ICN In-network Control for | N., and X. Zeng, "Leveraging ICN In-network Control for | |||
| Loss Detection and Recovery in Wireless Mobile networks", | Loss Detection and Recovery in Wireless Mobile networks", | |||
| Proc. ICN ACM, September 2016. | Proc. ICN ACM, September 2016. | |||
| [38] Ali, M. and U. Niesen, "Coding for Caching: Fundamental | [37] Ali, M. and U. Niesen, "Coding for Caching: Fundamental | |||
| Limits and Practical Challenges", IEEE Communications | Limits and Practical Challenges", IEEE Communications | |||
| Magazine vol. 54, no. 8, August 2016. | Magazine vol. 54, no. 8, August 2016. | |||
| [39] Koetter, R. and F. Kschischang, "An algebraic approach to | [38] Koetter, R. and F. Kschischang, "An algebraic approach to | |||
| network coding", IEEE Trans. Netw. vol.11, no.5, October | network coding", IEEE Trans. Netw. vol.11, no.5, October | |||
| 2008. | 2003. | |||
| [39] 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, July 2009. | ||||
| [40] Tournoux, P., Lochin, E., Lacan, J., Bouabdallah, A., and | [40] Tournoux, P., Lochin, E., Lacan, J., Bouabdallah, A., and | |||
| V. Roca, "On-the-Fly Erasure Coding for Real-Time Video | V. Roca, "On-the-Fly Erasure Coding for Real-Time Video | |||
| Applications", IEEE Trans. Multimeda vol.13, no.4, August | Applications", IEEE Trans. Multimeda vol.13, no.4, August | |||
| 2011. | 2011. | |||
| Authors' Addresses | Authors' Addresses | |||
| Kazuhisa Matsuzono | Kazuhisa Matsuzono | |||
| National Institute of Information and Communications Technology | National Institute of Information and Communications Technology | |||
| End of changes. 87 change blocks. | ||||
| 286 lines changed or deleted | 288 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||