idnits 2.17.1 draft-gundogan-icnrg-ccnx-timetlv-00.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == The document doesn't use any RFC 2119 keywords, yet seems to have RFC 2119 boilerplate text. -- The document date (November 4, 2019) is 1627 days in the past. Is this intentional? Checking references for intended status: Experimental ---------------------------------------------------------------------------- == Outdated reference: A later version (-11) exists of draft-irtf-icnrg-icnlowpan-05 Summary: 0 errors (**), 0 flaws (~~), 3 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 ICNRG C. Gundogan 3 Internet-Draft TC. Schmidt 4 Intended status: Experimental HAW Hamburg 5 Expires: May 7, 2020 D. Oran 6 Network Systems Research and Design 7 M. Waehlisch 8 link-lab & FU Berlin 9 November 4, 2019 11 An Alternative Delta Time encoding for CCNx using Interval Time from 12 RFC5497 13 draft-gundogan-icnrg-ccnx-timetlv-00 15 Abstract 17 CCNx utilizes Delta Time for a number of functions. When using CCNx 18 in environments with constrained nodes and/or bandwidth constrained 19 networks, it is valuable to have a compressed representation of delta 20 time. In order to do so, either accuracy or dynamic range has to be 21 sacrificed. Since the current uses of delta time do not require both 22 simultaneously, one can consider a logarithmic encoding such as that 23 specified in RFC5497. This document updates _CCNx messages in TLV 24 Format_ (RFC8609) to specify this alternative encoding. 26 Status of This Memo 28 This Internet-Draft is submitted in full conformance with the 29 provisions of BCP 78 and BCP 79. 31 Internet-Drafts are working documents of the Internet Engineering 32 Task Force (IETF). Note that other groups may also distribute 33 working documents as Internet-Drafts. The list of current Internet- 34 Drafts is at http://datatracker.ietf.org/drafts/current/. 36 Internet-Drafts are draft documents valid for a maximum of six months 37 and may be updated, replaced, or obsoleted by other documents at any 38 time. It is inappropriate to use Internet-Drafts as reference 39 material or to cite them other than as "work in progress." 41 This Internet-Draft will expire on May 7, 2020. 43 Copyright Notice 45 Copyright (c) 2019 IETF Trust and the persons identified as the 46 document authors. All rights reserved. 48 This document is subject to BCP 78 and the IETF Trust's Legal 49 Provisions Relating to IETF Documents 50 (http://trustee.ietf.org/license-info) in effect on the date of 51 publication of this document. Please review these documents 52 carefully, as they describe your rights and restrictions with respect 53 to this document. Code Components extracted from this document must 54 include Simplified BSD License text as described in Section 4.e of 55 the Trust Legal Provisions and are provided without warranty as 56 described in the Simplified BSD License. 58 Table of Contents 60 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 61 2. Requirements Language . . . . . . . . . . . . . . . . . . . . 3 62 3. Usage of Time values CCNx . . . . . . . . . . . . . . . . . . 3 63 3.1. Relative Time usage in CCNx . . . . . . . . . . . . . . . 3 64 3.2. Absolute Time usage in CCNx . . . . . . . . . . . . . . . 3 65 3.2.1. Signature Time . . . . . . . . . . . . . . . . . . . 3 66 3.2.2. Expiry Time . . . . . . . . . . . . . . . . . . . . . 4 67 3.2.3. Recommended Cache Time . . . . . . . . . . . . . . . 4 68 4. A Compact Time Representation with Logarithmic Range . . . . 5 69 5. Alternatives for a compact time representation in CCNx 70 messages . . . . . . . . . . . . . . . . . . . . . . . . . . 5 71 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 6 72 7. Security Considerations . . . . . . . . . . . . . . . . . . . 6 73 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 6 74 8.1. Normative References . . . . . . . . . . . . . . . . . . 6 75 8.2. Informative References . . . . . . . . . . . . . . . . . 7 76 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 7 78 1. Introduction 80 CCNx utilizes Time values for a number of functions. Some of these 81 are expressed as absolute time, others as delta time. When using 82 CCNx in environments with constrained nodes and/or bandwidth 83 constrained networks, it is valuable to have a compact representation 84 of time values. For example [I-D.irtf-icnrg-icnlowpan] specifies a 85 compression scheme useful over IEEE 804.15.4 networks. However, any 86 compact time representation has to sacrifice either accuracy or 87 dynamic range or both. For some time uses this is relatively 88 straightforward to achieve, for other uses, it is not. This document 89 discusses the various cases, and proposes a compact encoding that is 90 easily accommodated for delta times, and a more complicated method 91 that can be considered for some uses of absolute time. 93 2. Requirements Language 95 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 96 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 97 document are to be interpreted as described in RFC 2119 [RFC2119]. 99 3. Usage of Time values CCNx 101 3.1. Relative Time usage in CCNx 103 CCNx, as currently specified in [RFC8569], utilizes delta time for 104 only the lifetime of an Interest message (sections 2.1, 2.2, 2.4.2, 105 10.3). It is a hop-by-hop header value, and is currently encoded via 106 the T_INTLIFE TLV as a 64-bit integer ([RFC8609] section 3.4.1). 107 While formally an optional TLV, in all but some corner cases every 108 Interest Message is expected to carry the Interest Lifetime TLV, and 109 hence having compact encoding is particularly valuable for keeping 110 Interest messages short. 112 Since the current uses of delta time do not require both accuracy and 113 dynamic range simultaneously, one can consider a logarithmic encoding 114 such as that specified in [RFC5497] and outlined in Section 4. This 115 document updates CCNx messages in TLV Format ([RFC8609]) to permit 116 this alternative encoding for selected Time values. See Section 6 117 for the specific actions needed to register this alternative compact 118 representation of Interest Lifetime. 120 3.2. Absolute Time usage in CCNx 122 CCNx, as currently specified in [RFC8569], utilizes absolute time for 123 various important functions. Each of these absolute time usages 124 poses a different challenge for a compact representation. These are 125 discussed in the following subsections. 127 3.2.1. Signature Time 129 _Signature Time_ is the time the signature of a content object was 130 generated (sections 8.2-8.4 [RFC8569]). This is a content message 131 TLV stating the time the signature on the content object was 132 generated, in milliseconds since the UTC epoch (i.e. An NTP 133 timestamp). It is currently encoded via the T_SIGTIME TLV as a 134 64-bit unsigned integer (see section 3.6.4.1.4.5 [RFC8609]). 136 Given that a signature time could be essentially at any time in the 137 past, and is included in the hash securing the content object, it 138 seems there is no practical way to define an alternative compact 139 encoding that preserves its semantics and security properties; hence 140 we don't consider it further as a candidate. 142 3.2.2. Expiry Time 144 _Expiry Time_ indicates the expiry time of a content object (section 145 4 [RFC8569]). This is a content message TLV (covered by the hash and 146 signature of the content object) stating the expiration time of the 147 content object in milliseconds since the UTC epoch (i.e. An NTP 148 timestamp). It is currently encoded via the T_EXPIRY TLV as a 64-bit 149 unsigned integer (see section 3.6.2.2.2 [RFC8609]). 151 Expiry time could be in the past, or in the future, potentially by a 152 large delta, and is included in the hash securing the content object. 153 Therefore, it seems there is no practical way to define an 154 alternative compact encoding that preserves its semantics and 155 security properties; hence we don't consider it further as a 156 candidate. 158 3.2.3. Recommended Cache Time 160 _Recommended Cache Time_ (RCT) for a content object (see section 4 161 [RFC8569]) is a hop-by-hop header stating the expiration time for a 162 cached content object in milliseconds since the UTC epoch (i.e. An 163 NTP timestamp). It is currently encoded via the T_CACHETIME TLV as a 164 64-bit unsigned integer (see section 3.4.2 [RFC8609]). 166 Recommended cache time could be far in the future, but cannot be in 167 the past and is likely to be a reasonably short offset from the 168 current time. Therefore, there are a couple of alternatives for 169 defining a compact representation. These are: 171 o allow the compact representation to be interpreted as a delta time 172 rather than an absolute time, since the semantics associated with 173 an absolute time value do not seem to be critical to the utility 174 of this value. 176 o define an alternative absolute time base against which the RCT 177 delta can be measured. One potential candidate would be a 178 _message generation time_ included as a message TLV (not a hop-by- 179 hop TLV). While doing this would not save any space if used for 180 just RCT (it would actually make the message bigger) if its cost 181 could be amortitized across multiple other time TLVs in the same 182 message, it might be a win. 184 This possibility is for further analysis and discussion as the 185 document progresses. 187 4. A Compact Time Representation with Logarithmic Range 189 This document defines a compact time representation with logarithmic 190 range support that is inspired by [RFC5497]. Compact time-codes are 191 one or two octets wide and represent time-values that range from 192 milliseconds to days. Figure 1 depicts the logarithmic nature of 193 this time representation. 195 ||||| | | | | | | | | | | | | | | | | | 196 +--------------------------------------------------------------+ 197 milliseconds days 199 Figure 1: A logarithmic range representation allows for higher 200 precision in the smaller time ranges and still supports large time 201 deltas. 203 Time-codes encode an exponent and a mantissa as illustrated in 204 Figure 2. Appropriate sizes for the exponent (b) and mantissa (a) 205 are yet to be discussed. 207 <-- one or two octets wide --> 208 +---+---+---+---+---+---+---+---+ 209 | exponent (b) | mantissa (a) | 210 +---+---+---+---+---+---+---+---+ 212 Figure 2: A time-code with exponent and mantissa to encode a 213 logarithmic range time representation. 215 5. Alternatives for a compact time representation in CCNx messages 217 A straightforward way to accommodate the TimeTLV approach as an 218 alternative encoding is to simply allow a 1 or 2-byte length as an 219 alternative to the 8-byte length while retaining the existing TLV 220 Registry entries. While this has backward compatibility problems, 221 the authors recommend this approach for the following reasons: 223 o Both CCNx RFCs are experimental and not Standards Track, hence 224 expectations for forward and backward compatibility are not as 225 stringent. "Flag day" upgrades of deployed CCNx networks, while 226 inconvenient, are still feasible. 228 o The major use case for these compressed encodings are smaller- 229 scale IoT and/or sensor networks where the population of 230 consumers, producers, and forwarders is reasonably small. 232 o Since the current TLVs have hop-by-hop semantics, they are not 233 covered by any signed hash and hence may be freely re-encoded by 234 any forwarder. That means a forwarder supporting the new encoding 235 can translate freely between the two encodings. 237 o The alternative of assigning new TLV registry values does not 238 substantially mitigate the interoperability problems anyway. 240 6. IANA Considerations 242 Please change the registry for the T_INTLIFE to permit a length of 1 243 or 2 in addition to a length of 8, as follows:. 245 . 247 1 2 3 248 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 249 +---------------+---------------+---------------+---------------+ 250 | T_INTLIFE | 1 | 251 +---------------+---------------+---------------+---------------+ 252 | INTERVAL_TIME | 253 +---------------+ 255 1 2 3 256 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 257 +---------------+---------------+---------------+---------------+ 258 | T_INTLIFE | 2 | 259 +---------------+---------------+---------------+---------------+ 260 | INTERVAL_TIME | 261 +-------------------------------+ 263 Figure 3: Alternate Delta Time encoding based on RFC4574 265 7. Security Considerations 267 This document makes no semantic changes to RFC8965, nor to any of the 268 security properties of the message encodings of RFC8609, and hence 269 has the same security considerations as those two existing documents. 271 8. References 273 8.1. Normative References 275 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 276 Requirement Levels", BCP 14, RFC 2119, 277 DOI 10.17487/RFC2119, March 1997, . 280 [RFC5497] Clausen, T. and C. Dearlove, "Representing Multi-Value 281 Time in Mobile Ad Hoc Networks (MANETs)", RFC 5497, 282 DOI 10.17487/RFC5497, March 2009, . 285 [RFC8569] Mosko, M., Solis, I., and C. Wood, "Content-Centric 286 Networking (CCNx) Semantics", RFC 8569, 287 DOI 10.17487/RFC8569, July 2019, . 290 [RFC8609] Mosko, M., Solis, I., and C. Wood, "Content-Centric 291 Networking (CCNx) Messages in TLV Format", RFC 8609, 292 DOI 10.17487/RFC8609, July 2019, . 295 8.2. Informative References 297 [I-D.irtf-icnrg-icnlowpan] 298 Gundogan, C., Schmidt, T., Waehlisch, M., Scherb, C., 299 Marxer, C., and C. Tschudin, "ICN Adaptation to LowPAN 300 Networks (ICN LoWPAN)", draft-irtf-icnrg-icnlowpan-05 301 (work in progress), September 2019. 303 Authors' Addresses 305 Cenk Gundogan 306 HAW Hamburg 307 Berliner Tor 7 308 Hamburg D-20099 309 Germany 311 Phone: +4940428758067 312 Email: cenk.guendogan@haw-hamburg.de 313 URI: http://inet.haw-hamburg.de/members/cenk-gundogan 315 Thomas C. Schmidt 316 HAW Hamburg 317 Berliner Tor 7 318 Hamburg D-20099 319 Germany 321 Email: t.schmidt@haw-hamburg.de 322 URI: http://inet.haw-hamburg.de/members/schmidt 323 Dave Oran 324 Network Systems Research and Design 325 4 Shady Hill Square 326 Cambridge, MA 02138 327 USA 329 Email: daveoran@orandom.net 331 Matthias Waehlisch 332 link-lab & FU Berlin 333 Hoenower Str. 35 334 Berlin D-10318 335 Germany 337 Email: mw@link-lab.net 338 URI: http://www.inf.fu-berlin.de/~waehl