idnits 2.17.1 draft-mastorakis-icnrg-icnping-05.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 19, 2019) is 1709 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 University of Nebraska, Omaha 4 Intended status: Experimental J. Gibson 5 Expires: February 20, 2020 Cisco Systems 6 I. Moiseenko 7 Apple Inc. 8 R. Droms 9 Google Inc. 10 D. Oran 11 Network Systems Research and Design 12 August 19, 2019 14 ICN Ping Protocol Specification 15 draft-mastorakis-icnrg-icnping-05 17 Abstract 19 This document presents the design of an ICN Ping protocol. It 20 includes the operations both on the client and the forwarder side. 22 Status of This Memo 24 This Internet-Draft is submitted in full conformance with the 25 provisions of BCP 78 and BCP 79. 27 Internet-Drafts are working documents of the Internet Engineering 28 Task Force (IETF). Note that other groups may also distribute 29 working documents as Internet-Drafts. The list of current Internet- 30 Drafts is at https://datatracker.ietf.org/drafts/current/. 32 Internet-Drafts are draft documents valid for a maximum of six months 33 and may be updated, replaced, or obsoleted by other documents at any 34 time. It is inappropriate to use Internet-Drafts as reference 35 material or to cite them other than as "work in progress." 37 This Internet-Draft will expire on February 20, 2020. 39 Copyright Notice 41 Copyright (c) 2019 IETF Trust and the persons identified as the 42 document authors. All rights reserved. 44 This document is subject to BCP 78 and the IETF Trust's Legal 45 Provisions Relating to IETF Documents 46 (https://trustee.ietf.org/license-info) in effect on the date of 47 publication of this document. Please review these documents 48 carefully, as they describe your rights and restrictions with respect 49 to this document. Code Components extracted from this document must 50 include Simplified BSD License text as described in Section 4.e of 51 the Trust Legal Provisions and are provided without warranty as 52 described in the Simplified BSD License. 54 Table of Contents 56 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 57 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 2 58 2. Background on IP-Based Ping Operation . . . . . . . . . . . . 3 59 3. Ping Functionality Challenges and Opportunities in ICN . . . 3 60 4. ICN Ping Echo CCNx Packet Formats . . . . . . . . . . . . . . 5 61 4.1. ICN Ping Echo Request CCNx Packet Format . . . . . . . . 5 62 4.2. Ping Echo Reply CCNx Packet Format . . . . . . . . . . . 8 63 5. ICN Ping Echo NDN Packet Formats . . . . . . . . . . . . . . 11 64 5.1. ICN Ping Echo Request NDN Packet Format . . . . . . . . . 11 65 5.2. Ping Echo Reply NDN Packet Format . . . . . . . . . . . . 12 66 6. Forwarder Handling . . . . . . . . . . . . . . . . . . . . . 13 67 7. Protocol Operation For Locally-Scoped Namespaces . . . . . . 14 68 8. Security Considerations . . . . . . . . . . . . . . . . . . . 15 69 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 15 70 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 15 71 10.1. Normative References . . . . . . . . . . . . . . . . . . 15 72 10.2. Informative References . . . . . . . . . . . . . . . . . 15 73 Appendix A. Ping Client Application (Consumer) Operation . . . . 16 74 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 17 76 1. Introduction 78 Determining data plane reachability to a destination and taking 79 coarse performance measurements of round trip time are fundamental 80 facilities for network administration and troubleshooting. In IP, 81 where routing and forwarding are based on IP addresses, ICMP echo and 82 ICMP echo response are the protocol mechanisms used for this purpose, 83 generally exercised through the familiar ping utility. In ICN, where 84 routing and forwarding are based on name prefixes, the ability to 85 determine reachability of names is required. 87 This document proposes protocol mechanisms for a ping equivalent in 88 ICN networks. A non-normative appendix suggests useful properties 89 for an ICN ping client application, analogous to IP ping, that 90 originates echo requests and process echo replies. 92 1.1. Requirements Language 94 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 95 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 96 document are to be interpreted as described in [RFC2119]. 98 2. Background on IP-Based Ping Operation 100 In IP-based ping, an IP address is specified, either directly, or via 101 translation of a domain name through DNS. The ping client 102 application sends a number of ICMP Echo Request packets with the 103 specified IP address as the IP destination address and an IP address 104 from the client's host as the IP source address. 106 An ICMP Echo Request is forwarded across the network based on its 107 destination IP address. If it eventually reaches the destination, 108 the destination responds by sending back an ICMP Echo Reply packet to 109 the IP source address from the ICMP Echo Request. 111 If an ICMP Echo Request does not reach the destination or the Echo 112 reply is lost, the ping client times out. Any ICMP error messages, 113 such as "no route to destination", generated by the ICMP Echo Request 114 message are returned to the client and reported. 116 3. Ping Functionality Challenges and Opportunities in ICN 118 In ICN protocols (e.g., NDN and CCNx), the communication paradigm is 119 based exclusively on named objects. An Interest is forwarded across 120 the network based on its name. Eventually, it retrieves a content 121 object either from a producer application or some forwarder's Content 122 Store (CS). 124 IP-based ping was built as an add-on on top of an already existing 125 network architecture. In ICN, we have the opportunity to incorporate 126 diagnostic mechanisms directly in the network layer protocol, and 127 hopefully provide more powerful diagnostic capability than can be 128 realized through the layered ICMP Echo approach. 130 An ICN network differs from an IP network in at least 4 important 131 ways: 133 o IP identifies interfaces to an IP network with a fixed-length 134 number, and delivers IP packets to one or more interfaces. ICN 135 identifies units of data in the network with a variable length 136 name consisting of a hierarchical list of components. 138 o An IP-based network depends on the IP packets having source IP 139 addresses that are used as the destination address for replies. 140 On the other hand, ICN Interests do not have source addresses and 141 they are forwarded based on names, which do not refer to a unique 142 end-point. Data packets follow the reverse path of the Interests 143 based on hop-by-hop state created during Interest forwarding. 145 o An IP network supports multi-path, single destination, stateless 146 packet forwarding and delivery via unicast, a limited form of 147 multi-destination selected delivery with anycast, and group-based 148 multi-destination delivery via multicast. In contrast, ICN 149 supports multi-path and multi-destination stateful Interest 150 forwarding and multi-destination data delivery to units of named 151 data. This single forwarding semantic subsumes the functions of 152 unicast, anycast, and multicast. As a result, consecutive (or 153 retransmitted) ICN Interest messages may be forwarded through an 154 ICN network along different paths, and may be forwarded to 155 different data sources (e.g., end-node applications, in-network 156 storage) holding a copy of the requested unit of data. This can 157 lead to a significant variance in round-trip times, which might 158 not be desirable in the case of a network troubleshooting 159 mechanism like ping. 161 o In the case of multiple Interests with the same name arriving at a 162 forwarder, a number of Interests may be aggregated in a common 163 Pending Interest Table (PIT) entry. Depending on the lifetime of 164 a PIT entry, the round-trip time an Interest-Data exchange might 165 significantly vary (e.g., it might be shorter than the full round- 166 trip time to reach the original content producer). To this end, 167 the round-trip time experienced by consumers might also vary. 169 These differences introduce new challenges, new opportunities and new 170 requirements in the design of an ICN ping protocol. Following this 171 communication model, a ping client should be able to express ping 172 echo requests with some name prefix and receive responses. 174 Our goals are the following: 176 o Test the reachability and the operation of an ICN forwarder. 178 o Test the reachability of an application (in the sense of whether 179 Interests for a prefix that it serves can be forwarded to it) and 180 discover the forwarder with local connectivity to (an instance of) 181 the application. 183 o Test whether a specific named object is cached in some on-path CS, 184 and, if so, return the administrative name of the corresponding 185 forwarder. 187 o Perform some simple network performance measurements. 189 To this end, a ping name can represent: 191 o An administrative name that has been assigned to a forwarder. 193 o A name that includes an application's namespace as a prefix. 195 o A named object that might reside in some in-network storage. 197 In order to provide stable and reliable diagnostics, it is desirable 198 that the packet encoding of a ping echo request enable the forwarders 199 to distinguish a ping from a normal Interest, while also allowing for 200 forwarding behavior to be as similar as possible to that of an 201 Interest packet. In the same way, the encoding of a ping echo reply 202 should allow for forwarder processing as close as possible to that 203 used for data packets. 205 The ping protocol should also enable relatively robust round-trip 206 time measurements. To this end, it is important to have a mechanism 207 to steer consecutive ping echo requests for the same name towards an 208 individual path [PATHSTEERING]. 210 It is also important, in the case of ping echo requests for the same 211 name from different sources, to have a mechanism to avoid aggregating 212 those requests in the PIT. To this end, we need some encoding in the 213 ping echo requests to make each request for a common name unique, 214 hence avoiding PIT aggregation and further enabling the exact match 215 of a response with a particular ping packet. 217 4. ICN Ping Echo CCNx Packet Formats 219 In this section, we describe the Echo Packet Format according to the 220 CCNx packet format [CCNMessages], where messages exist within 221 outermost containments (packets). Specifically, we propose two types 222 of ping packets, an echo request and an echo reply packet type. 224 4.1. ICN Ping Echo Request CCNx Packet Format 226 The format of the ping echo request packet is presented below: 228 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 230 +---------------+---------------+---------------+---------------+ 231 | | | | 232 | Version | EchoRequest | PacketLength | 233 | | | | 234 +---------------+---------------+---------------+---------------+ 235 | | | | | 236 | HopLimit | Reserved | Flags | HeaderLength | 237 | | | | | 238 +---------------+---------------+---------------+---------------+ 239 / / 240 / PathSteering TLV / 241 / / 242 +---------------+---------------+---------------+---------------+ 243 | | 244 | Echo Request Message TLVs | 245 | | 246 +---------------+---------------+---------------+---------------+ 248 Echo Request CCNx Packet Format 250 The existing packet header fields have the same definition as the 251 header fields of a CCNx Interest packet. The value of the packet 252 type field is Echo Request. The exact numeric value of this field 253 type is to be assigned in the Packet Type IANA Registry for CCNx (see 254 section 4.1 of [CCNMessages]. 256 Compared to the typical format of a CCNx packet header [CCNMessages], 257 there is a new optional fixed header TLV added to the packet header: 259 o A PathSteering hop-by-hop header TLV, which is constructed hop-by- 260 hop in the echo reply and included in the echo request to steer 261 consecutive echo requests expressed by a ping client towards a 262 common forwarding path. An example of such a scheme is presented 263 in [PATHSTEERING]. 265 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 267 +---------------+---------------+---------------+---------------+ 268 | | | 269 | PathSteering_Type | PathSteering_Length | 270 | | | 271 +---------------+---------------+---------------+---------------+ 272 | | 273 | PathSteering_Value | 274 | | 275 +---------------+---------------+---------------+---------------+ 277 PathSteering TLV 279 The message of an echo request is presented below: 281 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 283 +---------------+---------------+---------------+---------------+ 284 | | | 285 | MessageType = 1 | MessageLength | 286 | | | 287 +---------------+---------------+---------------+---------------+ 288 | | 289 | Name TLV | 290 | | 291 +---------------+---------------+---------------+---------------+ 293 Echo Request Message Format 295 The echo request message is of type Interest in order to leverage the 296 Interest forwarding behavior provided by the network. The Name TLV 297 has the structure described in [CCNMessages]. The name consists of 298 the prefix that we would like to ping appended with a nonce typed 299 name component as its last component. The exact numeric value of 300 this field type is to be assigned in the Name Component Type IANA 301 Registry for CCNx (see section 4.5 of [CCNMessages]. The value of 302 this TLV is a 64-bit nonce. The purpose of the nonce is to avoid 303 Interest aggregation and allow client matching of replies with 304 requests. As described below, the nonce is ignored for CS checking. 306 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 308 +---------------+---------------+---------------+---------------+ 309 | | | 310 | Nonce_Type | Nonce_Length = 8 | 311 | | | 312 +---------------+---------------+---------------+---------------+ 313 | | 314 | | 315 | | 316 | Nonce_Value | 317 | | 318 | | 319 +---------------+---------------+---------------+---------------+ 321 Nonce Typed Name Component TLV 323 4.2. Ping Echo Reply CCNx Packet Format 325 The format of a ping echo reply packet is presented below: 327 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 329 +---------------+---------------+---------------+---------------+ 330 | | | | 331 | Version | EchoReply | PacketLength | 332 | | | | 333 +---------------+---------------+---------------+---------------+ 334 | | | | 335 | Reserved | Flags | HeaderLength | 336 | | | | 337 +---------------+---------------+---------------+---------------+ 338 | | 339 | PathSteering TLV | 340 | | 341 +---------------+---------------+---------------+---------------+ 342 | | 343 | Echo Reply Message TLVs | 344 | | 345 +---------------+---------------+---------------+---------------+ 347 Echo Reply CCNx Packet Format 349 The header of an echo reply consists of the header fields of a CCNx 350 Content Object and a hop-by-hop PathSteering TLV. The value of the 351 packet type field is Echo Reply. The exact numeric value of this 352 field type is to be assigned in the Packet Type IANA Registry for 353 CCNx (see section 4.1 of [CCNMessages]. The PathSteering header TLV 354 is as defined for the echo request packet. 356 A ping echo reply message is of type Content Object, contains a Name 357 TLV (name of the corresponding echo request), a PayloadType TLV and 358 an ExpiryTime TLV with a value of 0 to indicate that echo replies 359 must not be returned from network caches. 361 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 363 +---------------+---------------+---------------+---------------+ 364 | | | 365 | MessageType = 2 | MessageLength | 366 | | | 367 +---------------+---------------+---------------+---------------+ 368 | | 369 | Name TLV | 370 | | 371 +---------------+---------------+---------------+---------------+ 372 | | 373 | PayloadType TLV | 374 | | 375 +---------------+---------------+---------------+---------------+ 376 | | 377 | ExpiryTime TLV | 378 | | 379 +---------------+---------------+---------------+---------------+ 381 Echo Reply Message Format 383 The PayloadType TLV is presented below. It is of type 384 T_PAYLOADTYPE_DATA, and the data schema consists of 3 TLVs: 1) the 385 name of the sender of this reply (with the same structure as a CCNx 386 Name TLV), 2) the sender's signature of their own name (with the same 387 structure as a CCNx ValidationPayload TLV), 3) a TLV with a return 388 code to indicate what led to the generation of this reply (i.e., 389 existence of a local application, a CS hit or a match with a 390 forwarder's administrative name as specified in Section 6). 392 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 394 +---------------+---------------+---------------+---------------+ 395 | | | 396 | T_PAYLOADTYPE_DATA | Length | 397 | | | 398 +---------------+---------------+---------------+---------------+ 399 / / 400 / Sender's Name TLV / 401 / / 402 +---------------+---------------+---------------+---------------+ 403 / / 404 / Sender's Signature TLV / 405 / / 406 +---------------+---------------+---------------+---------------+ 407 / / 408 / Echo Reply Code TLV / 409 / / 410 +---------------+---------------+---------------+---------------+ 412 Echo Reply Message Format 414 The goal of including the name of the sender in the echo reply is to 415 enable the user to reach this entity directly to ask for further 416 management/administrative information using generic Interest-Data 417 exchanges or by employing a more comprehensive management tool such 418 as CCNInfo [CCNInfo] after a successful verification of the sender's 419 name. 421 The structure of the Echo Reply Code TLV is presented below (16-bit 422 value). The defined values are the following: 424 o 1: Indicates that the target name matched the administrative name 425 of a forwarder. 427 o 2: Indicates that the target name matched a prefix served by an 428 application. 430 o 3: Indicates that the target name matched the name of an object in 431 a forwarder's CS. 433 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 435 +---------------+---------------+---------------+---------------+ 436 | | | 437 | Echo_Reply_Code_Type | Echo_Reply_Code_Length = 2 | 438 | | | 439 +---------------+---------------+---------------+---------------+ 440 | | 441 | Echo_Reply_Code_Value | 442 +---------------+---------------+---------------+---------------+ 444 Echo Reply Code TLV 446 5. ICN Ping Echo NDN Packet Formats 448 In this section, we present the ICN Ping Echo Request and Reply 449 Format according to the NDN packet specification [NDNTLV]. 451 5.1. ICN Ping Echo Request NDN Packet Format 453 An echo request is encoded as an NDN Interest packet. Its format is 454 the following: 456 EchoRequest ::= INTEREST-TYPE TLV-LENGTH 457 Name 458 MustBeFresh 459 Nonce 460 Parameters? 462 Echo Request NDN Packet Format 464 The name of an echo request consists of the prefix to be pinged, a 465 nonce value (it can be the value of the Nonce field) and the suffix 466 "ping" to denote that this Interest is a ping request. 468 The "Paremeters" field of the Request contains the following 469 PathSteering TLV: 471 PathSteering TLV ::= PATHSTEERING-TLV-TYPE TLV-LENGTH BYTE{8} 473 PathSteering TLV 475 Since the NDN packet format does not provide a mechanism to prevent 476 the network from caching specific data packets, we use the 477 MustBeFresh selector for echo requests (in combination with a 478 Freshness Period TLV of value 0 for echo replies) to avoid fetching 479 cached echo replies with an expired freshness period [REALTIME]. 481 5.2. Ping Echo Reply NDN Packet Format 483 An echo reply is encoded as an NDN Data packet. Its format is the 484 following: 486 EchoReply ::= DATA-TLV TLV-LENGTH 487 PathSteering TLV 488 Name 489 MetaInfo 490 Content 491 Signature 493 Echo Reply NDN Packet Format 495 Compared to the format of a regular NDN Data packet, an echo reply 496 contains a PathSteering TLV field, which is not included in the 497 security envelope, since it might be modified in a hop-by-hop fashion 498 by the forwarders along the reverse path. 500 The name of an echo reply is the name of the corresponding echo 501 request, while the format of the MetaInfo field is the following: 503 MetaInfo ::= META-INFO-TYPE TLV-LENGTH 504 ContentType 505 FreshnessPeriod 507 MetaInfo TLV 509 The value of the ContentType TLV is 0. The same applies to the value 510 of the FreshnessPeriod TLV, so that the replies are treated as stale 511 data as soon as they are received by a forwarder. 513 The content of an echo reply consists of the following 2 TLVs: 514 Sender's name (with a structure similar as an NDN Name TLV) and Echo 515 Reply Code. There is no need to have a separate TLV for the sender's 516 signature in the content of the reply, since every NDN data packet 517 carries the signature of the data producer. 519 The Echo Reply Code TLV format is the following (with the values 520 specified in Section 4.2): 522 EchoReplyCode ::= ECHOREPLYCODE-TLV-TYPE TLV-LENGTH BYTE{2} 524 Echo Reply Code TLV 526 6. Forwarder Handling 528 When a forwarder receives an echo request, it first extracts the 529 message's base name (i.e., the request name with the Nonce name 530 component excluded and the suffix "ping" in the case of an echo 531 request with the NDN packet format). 533 In some cases, the forwarder originates an echo reply, sending the 534 reply downstream through the face on which the echo request was 535 received. This echo reply includes the forwarder's own name and 536 signature and the appropriate echo reply code based on the condition 537 that triggered the reply generation. It also includes a pathSteering 538 TLV, initially containing a null value (since the echo reply 539 originator did not forward the request and, thus, does not make a 540 path choice). 542 The forwarder generates and returns an echo reply in the following 543 cases: 545 o Assuming that a forwarder has been given one or more 546 administrative names, the echo request base name exactly matches 547 any of the forwarder's administrative name(s). 549 o The echo request's base name exactly matches the name of a 550 content-object residing in the forwarder's CS (unless the ping 551 client application has chosen not to receive replies due to CS 552 hits as specified in Appendix A). 554 o The echo request base name matches (in a Longest Prefix Match 555 manner) a FIB entry with an outgoing face referring to a local 556 application. 558 If none of the conditions to reply to the echo request are met, the 559 forwarder will attempt to forward the echo request upstream based on 560 the path steering value (if present), the results of the FIB LPM 561 lookup and PIT creation (based on the name including the nonce typed 562 name component and the suffix "ping" in the case of an echo request 563 with the NDN packet format). If no valid next-hop is found, an 564 InterestReturn is sent downstream indicating "no route" (as with a 565 failed attempt to forward an ordinary Interest). 567 A received echo reply will be matched to an existing PIT entry as 568 usual. On the reverse path, the path steering TLV of an echo reply 569 will be updated by each forwarder to encode its next-hop choice. 570 When included in subsequent echo requests, this pathSteering TLV 571 allows the forwarders to steer the echo requests along the same path. 573 7. Protocol Operation For Locally-Scoped Namespaces 575 In this section, we elaborate on 2 alternative design approaches in 576 cases that the pinged prefix corresponds to a locally-scoped 577 namespace not directly routable from the client's local network. 579 The first approach leverages the NDN Link Object [SNAMP]. 580 Specifically, the ping client attaches to the expressed request a 581 LINK Object that contains a number of routable name prefixes, based 582 on which the request can be forwarded until it reaches a network 583 region where the request name itself is routable. A LINK Object is 584 created and signed by a data producer allowed to publish data under a 585 locally-scoped namespace. The way that a client retrieves a LINK 586 Object depends on various network design factors and is out of the 587 scope of the current draft. 589 Based on the current usage of the LINK Object by the NDN team, a 590 forwarder at the border of the region where an Interest name becomes 591 routable must remove the LINK Object from incoming Interests. The 592 Interest state maintained along the entire forwarding path is based 593 on the Interest name regardless of whether it was forwarded based on 594 its name or a routable prefix in the LINK Object. 596 The second approach is based on prepending a routable prefix to the 597 locally-scoped name. The resulting prefix will be the name of the 598 echo requests expressed by the client. In this way, a request will 599 be forwarded based on the routable part of its name. When it reaches 600 the network region where the original locally-scoped name is 601 routable, the border forwarder rewrites the request name and deletes 602 its routable part. There are two conditions for a forwarder to 603 perform this rewriting operation on a request: 1) the routable part 604 of the request name matches a routable name of the network region 605 adjacent to the forwarder (assuming that a forwarder is aware of 606 those names) and 2) the remaining part of the request name is 607 routable across the network region of this forwarder. 609 The state maintained along the path, where the locally-scoped name is 610 not routable, is based on the routable prefix along with the locally- 611 scoped prefix. Within the network region that the locally-scoped 612 prefix is routable, the state is based only on it. To ensure that 613 the generated replies reach the ping client, the border forwarder has 614 also to rewrite the name of a reply and prepend the routable prefix 615 of the corresponding echo request. 617 8. Security Considerations 619 A reflection attack could in the case of an echo reply with the CCNx 620 packet format if a compromised forwarder includes in the reply the 621 name of a victim forwarder. This could redirect the future 622 administrative traffic towards the victim. To foil such reflection 623 attacks, the forwarder that generates a reply must sign the name 624 included in the payload. In this way, the client is able to verify 625 that the included name is legitimate and refers to the forwarder that 626 generated the reply. Alternatively, the forwarder could include in 627 the reply payload their routable prefix(es) encoded as a signed NDN 628 Link Object [SNAMP]. 630 Interest flooding attack amplification is possible in the case of the 631 second approach to deal with locally-scoped namespaces described in 632 Section 7. To eliminate such amplification, a border forwarder will 633 have to maintain extra state in order to prepend the correct routable 634 prefix to the name of an outgoing reply, since the forwarder might be 635 attached to multiple network regions (reachable under different 636 prefixes) or a network region attached to this forwarder might be 637 reachable under multiple routable prefixes. 639 9. Acknowledgements 641 The authors would like to thank Mark Stapp for the fruitful 642 discussion on the objectives of the ICN ping protocol. 644 10. References 646 10.1. Normative References 648 [CCNMessages] 649 Mosko, M., Solis, I., and C. Wood, "CCNx Messages in TLV 650 Format.", 2018, . 653 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 654 Requirement Levels", BCP 14, RFC 2119, 655 DOI 10.17487/RFC2119, March 1997, 656 . 658 10.2. Informative References 660 [CCNInfo] Asaeda, H. and X. Shao, "CCNinfo: Discovering Content and 661 Network Information in Content-Centric Networks.", 2018, 662 . 665 [NDNTLV] "NDN Packet Format Specification.", 2016, 666 . 668 [PATHSTEERING] 669 Moiseenko, I. and D. Oran, "Path switching in content 670 centric and named data networks, in Proceedings of the 4th 671 ACM Conference on Information-Centric Networking", 2017. 673 [REALTIME] 674 Mastorakis, S., Gusev, P., Afanasyev, A., and L. Zhang, 675 "Real-Time Data Retrieval in Named Data Networking, in 676 Proceedings of the 1st IEEE International Conference on 677 Hot Topics in Information-Centric Networking", 2017. 679 [SNAMP] Afanasyev, A. and , "SNAMP: Secure namespace mapping to 680 scale NDN forwarding, in Proceedings of the IEEE 681 Conference on Computer Communications Workshops (INFOCOM 682 WKSHPS)", 2015. 684 Appendix A. Ping Client Application (Consumer) Operation 686 This section is an informative appendix regarding the proposed ping 687 client operation. 689 The ping client application is responsible for generating echo 690 requests for prefixes provided by users. 692 When generating a series of echo requests for a specific name, the 693 first echo request will typically not include a PathSteering TLV, 694 since no TLV value is known. After an echo reply containing a 695 PathSteering TLV is received, each subsequent echo request can 696 include the received path steering value in the PathSteering header 697 TLV to drive the requests towards a common path as part of checking 698 network performance. To discover more paths, a client can omit the 699 path steering TLV in future requests. Moreover, for each new ping 700 echo request, the client has to generate a new nonce and record the 701 time that the request was expressed. It will also set the lifetime 702 of an echo request, which will have identical semantics to the 703 lifetime of an Interest. 705 Further, the client application might not wish to receive echo 706 replies due to CS hits. A mechanism to achieve that in CCNx would be 707 to use a Content Object Hash Restriction TLV with a value of 0 in the 708 payload of an echo request message. In NDN, the exclude filter 709 selector can be used. 711 When it receives an echo reply, the client would typically match the 712 reply to a sent request and compute the round-trip time of the 713 request. It should parse the PathSteering value and decode the 714 reply's payload to parse the the sender's name and signature. The 715 client should verify that both the received message and the 716 forwarder's name have been signed by the key of the forwarder, whose 717 name is included in the payload of the reply (by fetching this 718 forwarder's public key and verifying the contained signature). The 719 client can also decode the Echo Reply Code TLV to understand the 720 condition that triggered the generation of the reply. 722 In the case that an echo reply is not received for a request within a 723 certain time interval (lifetime of the request), the client should 724 time-out and send a new request with a new nonce value up to some 725 maximum number of requests to be sent specified by the user. 727 Authors' Addresses 729 Spyridon Mastorakis 730 University of Nebraska, Omaha 731 Omaha, NE 732 US 734 Email: smastorakis@unomaha.edu 736 Jim Gibson 737 Cisco Systems 738 Cambridge, MA 739 US 741 Email: gibson@cisco.com 743 Ilya Moiseenko 744 Apple Inc. 745 Cupertino, CA 746 US 748 Email: iliamo@mailbox.org 750 Ralph Droms 751 Google Inc. 752 Cambridge, MA 753 US 755 Email: rdroms.ietf@gmail.com 756 Dave Oran 757 Network Systems Research and Design 758 Cambridge, MA 759 US 761 Email: daveoran@orandom.net