idnits 2.17.1 draft-mastorakis-icnrg-icnping-03.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The document seems to lack an IANA Considerations section. (See Section 2.2 of https://www.ietf.org/id-info/checklist for how to handle the case when there are no actions for IANA.) 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 (August 27, 2018) is 2066 days in the past. Is this intentional? Checking references for intended status: Experimental ---------------------------------------------------------------------------- == Outdated reference: A later version (-09) exists of draft-irtf-icnrg-ccnxmessages-08 Summary: 1 error (**), 0 flaws (~~), 3 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 ICNRG S. Mastorakis 3 Internet-Draft UCLA 4 Intended status: Experimental J. Gibson 5 Expires: February 28, 2019 I. Moiseenko 6 Cisco Systems 7 R. Droms 8 Google Inc. 9 D. Oran 10 Network Systems Research and Design 11 August 27, 2018 13 ICN Ping Protocol Specification 14 draft-mastorakis-icnrg-icnping-03 16 Abstract 18 This document presents the design of an ICN Ping protocol. It 19 includes the operations both on the client and the forwarder side. 21 Status of This Memo 23 This Internet-Draft is submitted in full conformance with the 24 provisions of BCP 78 and BCP 79. 26 Internet-Drafts are working documents of the Internet Engineering 27 Task Force (IETF). Note that other groups may also distribute 28 working documents as Internet-Drafts. The list of current Internet- 29 Drafts is at https://datatracker.ietf.org/drafts/current/. 31 Internet-Drafts are draft documents valid for a maximum of six months 32 and may be updated, replaced, or obsoleted by other documents at any 33 time. It is inappropriate to use Internet-Drafts as reference 34 material or to cite them other than as "work in progress." 36 This Internet-Draft will expire on February 28, 2019. 38 Copyright Notice 40 Copyright (c) 2018 IETF Trust and the persons identified as the 41 document authors. All rights reserved. 43 This document is subject to BCP 78 and the IETF Trust's Legal 44 Provisions Relating to IETF Documents 45 (https://trustee.ietf.org/license-info) in effect on the date of 46 publication of this document. Please review these documents 47 carefully, as they describe your rights and restrictions with respect 48 to this document. Code Components extracted from this document must 49 include Simplified BSD License text as described in Section 4.e of 50 the Trust Legal Provisions and are provided without warranty as 51 described in the Simplified BSD License. 53 Table of Contents 55 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 56 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 2 57 2. Background on IP-Based Ping Operation . . . . . . . . . . . . 3 58 3. Ping Functionality Challenges and Opportunities in ICN . . . 3 59 4. ICN Ping Echo CCNx Packet Formats . . . . . . . . . . . . . . 5 60 4.1. ICN Ping Echo Request CCNx Packet Format . . . . . . . . 5 61 4.2. Ping Echo Reply CCNx Packet Format . . . . . . . . . . . 8 62 5. ICN Ping Echo NDN Packet Formats . . . . . . . . . . . . . . 11 63 5.1. ICN Ping Echo Request NDN Packet Format . . . . . . . . . 11 64 5.2. Ping Echo Reply NDN Packet Format . . . . . . . . . . . . 12 65 6. Forwarder Handling . . . . . . . . . . . . . . . . . . . . . 13 66 7. Protocol Operation For Locally-Scoped Namespaces . . . . . . 14 67 8. Security Considerations . . . . . . . . . . . . . . . . . . . 15 68 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 15 69 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 15 70 10.1. Normative References . . . . . . . . . . . . . . . . . . 15 71 10.2. Informative References . . . . . . . . . . . . . . . . . 15 72 Appendix A. Ping Client Application (Consumer) Operation . . . . 16 73 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 17 75 1. Introduction 77 Determining data plane reachability to a destination and taking 78 coarse performance measurements of round trip time are fundamental 79 facilities for network administration and troubleshooting. In IP, 80 where routing and forwarding are based on IP addresses, ICMP echo and 81 ICMP echo response are the protocol mechanisms used for this purpose, 82 generally exercised through the familiar ping utility. In ICN, where 83 routing and forwarding are based on name prefixes, the ability to 84 determine reachability of names is required. 86 This document proposes protocol mechanisms for a ping equivalent in 87 ICN networks. A non-normative appendix suggests useful properties 88 for an ICN ping client application, analogous to IP ping, that 89 originates echo requests and process echo replies. 91 1.1. Requirements Language 93 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 94 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 95 document are to be interpreted as described in [RFC2119]. 97 2. Background on IP-Based Ping Operation 99 In IP-based ping, an IP address is specified, either directly, or via 100 translation of a domain name through DNS. The ping client 101 application sends a number of ICMP Echo Request packets with the 102 specified IP address as the IP destination address and an IP address 103 from the client's host as the IP source address. 105 An ICMP Echo Request is forwarded across the network based on its 106 destination IP address. If it eventually reaches the destination, 107 the destination responds by sending back an ICMP Echo Reply packet to 108 the IP source address from the ICMP Echo Request. 110 If an ICMP Echo Request does not reach the destination or the Echo 111 reply is lost, the ping client times out. Any ICMP error messages, 112 such as "no route to destination", generated by the ICMP Echo Request 113 message are returned to the client and reported. 115 3. Ping Functionality Challenges and Opportunities in ICN 117 In ICN protocols (e.g., NDN and CCNx), the communication paradigm is 118 based exclusively on named objects. An Interest is forwarded across 119 the network based on its name. Eventually, it retrieves a content 120 object either from a producer application or some forwarder's Content 121 Store (CS). 123 IP-based ping was built as an add-on on top of an already existing 124 network architecture. In ICN, we have the opportunity to incorporate 125 diagnostic mechanisms directly in the network layer protocol, and 126 hopefully provide more powerful diagnostic capability than can be 127 realized through the layered ICMP Echo approach. 129 An ICN network differs from an IP network in at least 4 important 130 ways: 132 o IP identifies interfaces to an IP network with a fixed-length 133 number, and delivers IP packets to one or more interfaces. ICN 134 identifies units of data in the network with a variable length 135 name consisting of a hierarchical list of components. 137 o An IP-based network depends on the IP packets having source IP 138 addresses that are used as the destination address for replies. 139 On the other hand, ICN Interests do not have source addresses and 140 they are forwarded based on names, which do not refer to a unique 141 end-point. Data packets follow the reverse path of the Interests 142 based on hop-by-hop state created during Interest forwarding. 144 o An IP network supports multi-path, single destination, stateless 145 packet forwarding and delivery via unicast, a limited form of 146 multi-destination selected delivery with anycast, and group-based 147 multi-destination delivery via multicast. In contrast, ICN 148 supports multi-path and multi-destination stateful Interest 149 forwarding and multi-destination data delivery to units of named 150 data. This single forwarding semantic subsumes the functions of 151 unicast, anycast, and multicast. As a result, consecutive (or 152 retransmitted) ICN Interest messages may be forwarded through an 153 ICN network along different paths, and may be forwarded to 154 different data sources (e.g., end-node applications, in-network 155 storage) holding a copy of the requested unit of data. This can 156 lead to a significant variance in round-trip times, which might 157 not be desirable in the case of a network troubleshooting 158 mechanism like ping. 160 o In the case of multiple Interests with the same name arriving at a 161 forwarder, a number of Interests may be aggregated in a common 162 Pending Interest Table (PIT) entry. Depending on the lifetime of 163 a PIT entry, the round-trip time an Interest-Data exchange might 164 significantly vary (e.g., it might be shorter than the full round- 165 trip time to reach the original content producer). To this end, 166 the round-trip time experienced by consumers might also vary. 168 These differences introduce new challenges, new opportunities and new 169 requirements in the design of an ICN ping protocol. Following this 170 communication model, a ping client should be able to express ping 171 echo requests with some name prefix and receive responses. 173 Our goals are the following: 175 o Test the reachability and the operation of an ICN forwarder. 177 o Test the reachability of an application (in the sense of whether 178 Interests for a prefix that it serves can be forwarded to it) and 179 discover the forwarder with local connectivity to (an instance of) 180 the application. 182 o Test whether a specific named object is cached in some on-path CS, 183 and, if so, return the administrative name of the corresponding 184 forwarder. 186 o Perform some simple network performance measurements. 188 To this end, a ping name can represent: 190 o An administrative name that has been assigned to a forwarder. 192 o A name that includes an application's namespace as a prefix. 194 o A named object that might reside in some in-network storage. 196 In order to provide stable and reliable diagnostics, it is desirable 197 that the packet encoding of a ping echo request enable the forwarders 198 to distinguish a ping from a normal Interest, while also allowing for 199 forwarding behavior to be as similar as possible to that of an 200 Interest packet. In the same way, the encoding of a ping echo reply 201 should allow for forwarder processing as close as possible to that 202 used for data packets. 204 The ping protocol should also enable relatively robust round-trip 205 time measurements. To this end, it is important to have a mechanism 206 to steer consecutive ping echo requests for the same name towards an 207 individual path [PATHSTEERING]. 209 It is also important, in the case of ping echo requests for the same 210 name from different sources, to have a mechanism to avoid aggregating 211 those requests in the PIT. To this end, we need some encoding in the 212 ping echo requests to make each request for a common name unique, 213 hence avoiding PIT aggregation and further enabling the exact match 214 of a response with a particular ping packet. 216 4. ICN Ping Echo CCNx Packet Formats 218 In this section, we describe the Echo Packet Format according to the 219 CCNx packet format [CCNMessages], where messages exist within 220 outermost containments (packets). Specifically, we propose two types 221 of ping packets, an echo request and an echo reply packet type. 223 4.1. ICN Ping Echo Request CCNx Packet Format 225 The format of the ping echo request packet is presented below: 227 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 229 +---------------+---------------+---------------+---------------+ 230 | | | | 231 | Version | EchoRequest | PacketLength | 232 | | | | 233 +---------------+---------------+---------------+---------------+ 234 | | | | | 235 | HopLimit | Reserved | Flags | HeaderLength | 236 | | | | | 237 +---------------+---------------+---------------+---------------+ 238 / / 239 / PathSteering TLV / 240 / / 241 +---------------+---------------+---------------+---------------+ 242 | | 243 | Echo Request Message TLVs | 244 | | 245 +---------------+---------------+---------------+---------------+ 247 Echo Request CCNx Packet Format 249 The existing packet header fields have the same definition as the 250 header fields of a CCNx Interest packet. The value of the packet 251 type field is Echo Request. The exact numeric value of this field 252 type is to be assigned in the Packet Type IANA Registry for CCNx (see 253 section 4.1 of [CCNMessages]. 255 Compared to the typical format of a CCNx packet header [CCNMessages], 256 there is a new optional fixed header TLV added to the packet header: 258 o A PathSteering hop-by-hop header TLV, which is constructed hop-by- 259 hop in the echo reply and included in the echo request to steer 260 consecutive echo requests expressed by a ping client towards a 261 common forwarding path. An example of such a scheme is presented 262 in [PATHSTEERING]. 264 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 266 +---------------+---------------+---------------+---------------+ 267 | | | 268 | PathSteering_Type | PathSteering_Length | 269 | | | 270 +---------------+---------------+---------------+---------------+ 271 | | 272 | PathSteering_Value | 273 | | 274 +---------------+---------------+---------------+---------------+ 276 PathSteering TLV 278 The message of an echo request is presented below: 280 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 282 +---------------+---------------+---------------+---------------+ 283 | | | 284 | MessageType = 1 | MessageLength | 285 | | | 286 +---------------+---------------+---------------+---------------+ 287 | | 288 | Name TLV | 289 | | 290 +---------------+---------------+---------------+---------------+ 292 Echo Request Message Format 294 The echo request message is of type Interest in order to leverage the 295 Interest forwarding behavior provided by the network. The Name TLV 296 has the structure described in [CCNMessages]. The name consists of 297 the prefix that we would like to ping appended with a nonce typed 298 name component as its last component. The exact numeric value of 299 this field type is to be assigned in the Name Component Type IANA 300 Registry for CCNx (see section 4.5 of [CCNMessages]. The value of 301 this TLV is a 64-bit nonce. The purpose of the nonce is to avoid 302 Interest aggregation and allow client matching of replies with 303 requests. As described below, the nonce is ignored for CS checking. 305 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 307 +---------------+---------------+---------------+---------------+ 308 | | | 309 | Nonce_Type | Nonce_Length = 8 | 310 | | | 311 +---------------+---------------+---------------+---------------+ 312 | | 313 | | 314 | | 315 | Nonce_Value | 316 | | 317 | | 318 +---------------+---------------+---------------+---------------+ 320 Nonce Typed Name Component TLV 322 4.2. Ping Echo Reply CCNx Packet Format 324 The format of a ping echo reply packet is presented below: 326 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 328 +---------------+---------------+---------------+---------------+ 329 | | | | 330 | Version | EchoReply | PacketLength | 331 | | | | 332 +---------------+---------------+---------------+---------------+ 333 | | | | 334 | Reserved | Flags | HeaderLength | 335 | | | | 336 +---------------+---------------+---------------+---------------+ 337 | | 338 | PathSteering TLV | 339 | | 340 +---------------+---------------+---------------+---------------+ 341 | | 342 | Echo Reply Message TLVs | 343 | | 344 +---------------+---------------+---------------+---------------+ 346 Echo Reply CCNx Packet Format 348 The header of an echo reply consists of the header fields of a CCNx 349 Content Object and a hop-by-hop PathSteering TLV. The value of the 350 packet type field is Echo Reply. The exact numeric value of this 351 field type is to be assigned in the Packet Type IANA Registry for 352 CCNx (see section 4.1 of [CCNMessages]. The PathSteering header TLV 353 is as defined for the echo request packet. 355 A ping echo reply message is of type Content Object, contains a Name 356 TLV (name of the corresponding echo request), a PayloadType TLV and 357 an ExpiryTime TLV with a value of 0 to indicate that echo replies 358 must not be returned from network caches. 360 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 362 +---------------+---------------+---------------+---------------+ 363 | | | 364 | MessageType = 2 | MessageLength | 365 | | | 366 +---------------+---------------+---------------+---------------+ 367 | | 368 | Name TLV | 369 | | 370 +---------------+---------------+---------------+---------------+ 371 | | 372 | PayloadType TLV | 373 | | 374 +---------------+---------------+---------------+---------------+ 375 | | 376 | ExpiryTime TLV | 377 | | 378 +---------------+---------------+---------------+---------------+ 380 Echo Reply Message Format 382 The PayloadType TLV is presented below. It is of type 383 T_PAYLOADTYPE_DATA, and the data schema consists of 3 TLVs: 1) the 384 name of the sender of this reply (with the same structure as a CCNx 385 Name TLV), 2) the sender's signature of their own name (with the same 386 structure as a CCNx ValidationPayload TLV), 3) a TLV with a return 387 code to indicate what led to the generation of this reply (i.e., 388 existence of a local application, a CS hit or a match with a 389 forwarder's administrative name as specified in Section 6). 391 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 393 +---------------+---------------+---------------+---------------+ 394 | | | 395 | T_PAYLOADTYPE_DATA | Length | 396 | | | 397 +---------------+---------------+---------------+---------------+ 398 / / 399 / Sender's Name TLV / 400 / / 401 +---------------+---------------+---------------+---------------+ 402 / / 403 / Sender's Signature TLV / 404 / / 405 +---------------+---------------+---------------+---------------+ 406 / / 407 / Echo Reply Code TLV / 408 / / 409 +---------------+---------------+---------------+---------------+ 411 Echo Reply Message Format 413 The goal of including the name of the sender in the echo reply is to 414 enable the user to reach this entity directly to ask for further 415 management/administrative information using generic Interest-Data 416 exchanges or by employing a more comprehensive management tool such 417 as CCNInfo [CCNInfo] after a successful verification of the sender's 418 name. 420 The structure of the Echo Reply Code TLV is presented below (16-bit 421 value). The defined values are the following: 423 o 1: Indicates that the target name matched the administrative name 424 of a forwarder. 426 o 2: Indicates that the target name matched a prefix served by an 427 application. 429 o 3: Indicates that the target name matched the name of an object in 430 a forwarder's CS. 432 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 434 +---------------+---------------+---------------+---------------+ 435 | | | 436 | Echo_Reply_Code_Type | Echo_Reply_Code_Length = 2 | 437 | | | 438 +---------------+---------------+---------------+---------------+ 439 | | 440 | Echo_Reply_Code_Value | 441 +---------------+---------------+---------------+---------------+ 443 Echo Reply Code TLV 445 5. ICN Ping Echo NDN Packet Formats 447 In this section, we present the ICN Ping Echo Request and Reply 448 Format according to the NDN packet specification [NDNTLV]. 450 5.1. ICN Ping Echo Request NDN Packet Format 452 An echo request is encoded as an NDN Interest packet. Its format is 453 the following: 455 EchoRequest ::= INTEREST-TYPE TLV-LENGTH 456 Name 457 MustBeFresh 458 Nonce 459 Parameters? 461 Echo Request NDN Packet Format 463 The name of an echo request consists of the prefix to be pinged, a 464 nonce value (it can be the value of the Nonce field) and the suffix 465 "ping" to denote that this Interest is a ping request. 467 The "Paremeters" field of the Request contains the following 468 PathSteering TLV: 470 PathSteering TLV ::= PATHSTEERING-TLV-TYPE TLV-LENGTH BYTE{8} 472 PathSteering TLV 474 Since the NDN packet format does not provide a mechanism to prevent 475 the network from caching specific data packets, we use the 476 MustBeFresh selector for echo requests (in combination with a 477 Freshness Period TLV of value 0 for echo replies) to avoid fetching 478 cached echo replies with an expired freshness period [REALTIME]. 480 5.2. Ping Echo Reply NDN Packet Format 482 An echo reply is encoded as an NDN Data packet. Its format is the 483 following: 485 EchoReply ::= DATA-TLV TLV-LENGTH 486 PathSteering TLV 487 Name 488 MetaInfo 489 Content 490 Signature 492 Echo Reply NDN Packet Format 494 Compared to the format of a regular NDN Data packet, an echo reply 495 contains a PathSteering TLV field, which is not included in the 496 security envelope, since it might be modified in a hop-by-hop fashion 497 by the forwarders along the reverse path. 499 The name of an echo reply is the name of the corresponding echo 500 request, while the format of the MetaInfo field is the following: 502 MetaInfo ::= META-INFO-TYPE TLV-LENGTH 503 ContentType 504 FreshnessPeriod 506 MetaInfo TLV 508 The value of the ContentType TLV is 0. The same applies to the value 509 of the FreshnessPeriod TLV, so that the replies are treated as stale 510 data as soon as they are received by a forwarder. 512 The content of an echo reply consists of the following 2 TLVs: 513 Sender's name (with a structure similar as an NDN Name TLV) and Echo 514 Reply Code. There is no need to have a separate TLV for the sender's 515 signature in the content of the reply, since every NDN data packet 516 carries the signature of the data producer. 518 The Echo Reply Code TLV format is the following (with the values 519 specified in Section 4.2): 521 EchoReplyCode ::= ECHOREPLYCODE-TLV-TYPE TLV-LENGTH BYTE{2} 523 Echo Reply Code TLV 525 6. Forwarder Handling 527 When a forwarder receives an echo request, it first extracts the 528 message's base name (i.e., the request name with the Nonce name 529 component excluded and the suffix "ping" in the case of an echo 530 request with the NDN packet format). 532 In some cases, the forwarder originates an echo reply, sending the 533 reply downstream through the face on which the echo request was 534 received. This echo reply includes the forwarder's own name and 535 signature and the appropriate echo reply code based on the condition 536 that triggered the reply generation. It also includes a pathSteering 537 TLV, initially containing a null value (since the echo reply 538 originator did not forward the request and, thus, does not make a 539 path choice). 541 The forwarder generates and returns an echo reply in the following 542 cases: 544 o Assuming that a forwarder has been given one or more 545 administrative names, the echo request base name exactly matches 546 any of the forwarder's administrative name(s). 548 o The echo request's base name exactly matches the name of a 549 content-object residing in the forwarder's CS (unless the ping 550 client application has chosen not to receive replies due to CS 551 hits as specified in Appendix A). 553 o The echo request base name matches (in a Longest Prefix Match 554 manner) a FIB entry with an outgoing face referring to a local 555 application. 557 If none of the conditions to reply to the echo request are met, the 558 forwarder will attempt to forward the echo request upstream based on 559 the path steering value (if present), the results of the FIB LPM 560 lookup and PIT creation (based on the name including the nonce typed 561 name component and the suffix "ping" in the case of an echo request 562 with the NDN packet format). If no valid next-hop is found, an 563 InterestReturn is sent downstream indicating "no route" (as with a 564 failed attempt to forward an ordinary Interest). 566 A received echo reply will be matched to an existing PIT entry as 567 usual. On the reverse path, the path steering TLV of an echo reply 568 will be updated by each forwarder to encode its next-hop choice. 569 When included in subsequent echo requests, this pathSteering TLV 570 allows the forwarders to steer the echo requests along the same path. 572 7. Protocol Operation For Locally-Scoped Namespaces 574 In this section, we elaborate on 2 alternative design approaches in 575 cases that the pinged prefix corresponds to a locally-scoped 576 namespace not directly routable from the client's local network. 578 The first approach leverages the NDN Link Object [SNAMP]. 579 Specifically, the ping client attaches to the expressed request a 580 LINK Object that contains a number of routable name prefixes, based 581 on which the request can be forwarded until it reaches a network 582 region where the request name itself is routable. A LINK Object is 583 created and signed by a data producer allowed to publish data under a 584 locally-scoped namespace. The way that a client retrieves a LINK 585 Object depends on various network design factors and is out of the 586 scope of the current draft. 588 Based on the current usage of the LINK Object by the NDN team, a 589 forwarder at the border of the region where an Interest name becomes 590 routable must remove the LINK Object from incoming Interests. The 591 Interest state maintained along the entire forwarding path is based 592 on the Interest name regardless of whether it was forwarded based on 593 its name or a routable prefix in the LINK Object. 595 The second approach is based on prepending a routable prefix to the 596 locally-scoped name. The resulting prefix will be the name of the 597 echo requests expressed by the client. In this way, a request will 598 be forwarded based on the routable part of its name. When it reaches 599 the network region where the original locally-scoped name is 600 routable, the border forwarder rewrites the request name and deletes 601 its routable part. There are two conditions for a forwarder to 602 perform this rewriting operation on a request: 1) the routable part 603 of the request name matches a routable name of the network region 604 adjacent to the forwarder (assuming that a forwarder is aware of 605 those names) and 2) the remaining part of the request name is 606 routable across the network region of this forwarder. 608 The state maintained along the path, where the locally-scoped name is 609 not routable, is based on the routable prefix along with the locally- 610 scoped prefix. Within the network region that the locally-scoped 611 prefix is routable, the state is based only on it. To ensure that 612 the generated replies reach the ping client, the border forwarder has 613 also to rewrite the name of a reply and prepend the routable prefix 614 of the corresponding echo request. 616 8. Security Considerations 618 A reflection attack could in the case of an echo reply with the CCNx 619 packet format if a compromised forwarder includes in the reply the 620 name of a victim forwarder. This could redirect the future 621 administrative traffic towards the victim. To foil such reflection 622 attacks, the forwarder that generates a reply must sign the name 623 included in the payload. In this way, the client is able to verify 624 that the included name is legitimate and refers to the forwarder that 625 generated the reply. Alternatively, the forwarder could include in 626 the reply payload their routable prefix(es) encoded as a signed NDN 627 Link Object [SNAMP]. 629 Interest flooding attack amplification is possible in the case of the 630 second approach to deal with locally-scoped namespaces described in 631 Section 7. To eliminate such amplification, a border forwarder will 632 have to maintain extra state in order to prepend the correct routable 633 prefix to the name of an outgoing reply, since the forwarder might be 634 attached to multiple network regions (reachable under different 635 prefixes) or a network region attached to this forwarder might be 636 reachable under multiple routable prefixes. 638 9. Acknowledgements 640 The authors would like to thank Mark Stapp for the fruitful 641 discussion on the objectives of the ICN ping protocol. 643 10. References 645 10.1. Normative References 647 [CCNMessages] 648 Mosko, M., Solis, I., and C. Wood, "CCNx Messages in TLV 649 Format.", 2018, . 652 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 653 Requirement Levels", BCP 14, RFC 2119, 654 DOI 10.17487/RFC2119, March 1997, 655 . 657 10.2. Informative References 659 [CCNInfo] Asaeda, H. and X. Shao, "CCNinfo: Discovering Content and 660 Network Information in Content-Centric Networks.", 2018, 661 . 664 [NDNTLV] NDN Project Team, "NDN Packet Format Specification.", 665 2016, . 667 [PATHSTEERING] 668 Moiseenko, I. and D. Oran, "Path switching in content 669 centric and named data networks, in Proceedings of the 4th 670 ACM Conference on Information-Centric Networking", 2017. 672 [REALTIME] 673 Mastorakis, S., Gusev, P., Afanasyev, A., and L. Zhang, 674 "Real-Time Data Retrieval in Named Data Networking, in 675 Proceedings of the 1st IEEE International Conference on 676 Hot Topics in Information-Centric Networking", 2017. 678 [SNAMP] Afanasyev, A. and et al, "SNAMP: Secure namespace mapping 679 to scale NDN forwarding, in Proceedings of the IEEE 680 Conference on Computer Communications Workshops (INFOCOM 681 WKSHPS)", 2015. 683 Appendix A. Ping Client Application (Consumer) Operation 685 This section is an informative appendix regarding the proposed ping 686 client operation. 688 The ping client application is responsible for generating echo 689 requests for prefixes provided by users. 691 When generating a series of echo requests for a specific name, the 692 first echo request will typically not include a PathSteering TLV, 693 since no TLV value is known. After an echo reply containing a 694 PathSteering TLV is received, each subsequent echo request can 695 include the received path steering value in the PathSteering header 696 TLV to drive the requests towards a common path as part of checking 697 network performance. To discover more paths, a client can omit the 698 path steering TLV in future requests. Moreover, for each new ping 699 echo request, the client has to generate a new nonce and record the 700 time that the request was expressed. It will also set the lifetime 701 of an echo request, which will have identical semantics to the 702 lifetime of an Interest. 704 Further, the client application might not wish to receive echo 705 replies due to CS hits. A mechanism to achieve that in CCNx would be 706 to use a Content Object Hash Restriction TLV with a value of 0 in the 707 payload of an echo request message. In NDN, the exclude filter 708 selector can be used. 710 When it receives an echo reply, the client would typically match the 711 reply to a sent request and compute the round-trip time of the 712 request. It should parse the PathSteering value and decode the 713 reply's payload to parse the the sender's name and signature. The 714 client should verify that both the received message and the 715 forwarder's name have been signed by the key of the forwarder, whose 716 name is included in the payload of the reply (by fetching this 717 forwarder's public key and verifying the contained signature). The 718 client can also decode the Echo Reply Code TLV to understand the 719 condition that triggered the generation of the reply. 721 In the case that an echo reply is not received for a request within a 722 certain time interval (lifetime of the request), the client should 723 time-out and send a new request with a new nonce value up to some 724 maximum number of requests to be sent specified by the user. 726 Authors' Addresses 728 Spyridon Mastorakis 729 UCLA 730 Los Angeles, CA 731 US 733 Email: mastorakis@cs.ucla.edu 735 Jim Gibson 736 Cisco Systems 737 Cambridge, MA 738 US 740 Email: gibson@cisco.com 742 Ilya Moiseenko 743 Cisco Systems 744 San Jose, CA 745 US 747 Email: iliamo@mailbox.org 749 Ralph Droms 750 Google Inc. 751 Cambridge, MA 752 US 754 Email: rdroms.ietf@gmail.com 755 Dave Oran 756 Network Systems Research and Design 757 Cambridge, MA 758 US 760 Email: daveoran@orandom.net