| < draft-irtf-icnrg-icntraceroute-03.txt | draft-irtf-icnrg-icntraceroute-04.txt > | |||
|---|---|---|---|---|
| ICNRG S. Mastorakis | ICNRG S. Mastorakis | |||
| Internet-Draft University of Nebraska, Omaha | Internet-Draft University of Nebraska at Omaha | |||
| Intended status: Experimental J. Gibson | Intended status: Experimental J. Gibson | |||
| Expires: 28 April 2022 Cisco Systems | Expires: 7 September 2022 Cisco Systems | |||
| I. Moiseenko | I. Moiseenko | |||
| Apple Inc | Apple Inc | |||
| R. Droms | R. Droms | |||
| Google Inc. | Google Inc. | |||
| D. Oran | D. Oran | |||
| Network Systems Research and Design | Network Systems Research and Design | |||
| 25 October 2021 | 6 March 2022 | |||
| ICN Traceroute Protocol Specification | ICN Traceroute Protocol Specification | |||
| draft-irtf-icnrg-icntraceroute-03 | draft-irtf-icnrg-icntraceroute-04 | |||
| Abstract | Abstract | |||
| This document presents the design of an ICN Traceroute protocol. | This document presents the design of an ICN Traceroute protocol. | |||
| This includes the operation of both the client and the forwarder. | This includes the operation of both the client and the forwarder. | |||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| skipping to change at page 1, line 38 ¶ | skipping to change at page 1, line 38 ¶ | |||
| 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 28 April 2022. | This Internet-Draft will expire on 7 September 2022. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2021 IETF Trust and the persons identified as the | Copyright (c) 2022 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 (https://trustee.ietf.org/ | Provisions Relating to IETF Documents (https://trustee.ietf.org/ | |||
| license-info) in effect on the date of publication of this document. | license-info) in effect on the date of publication of this document. | |||
| Please review these documents carefully, as they describe your rights | Please review these documents carefully, as they describe your rights | |||
| and restrictions with respect to this document. | and restrictions with respect to this document. | |||
| Table of Contents | Table of Contents | |||
| skipping to change at page 11, line 33 ¶ | skipping to change at page 11, line 33 ¶ | |||
| 5.1. ICN Traceroute Request NDN Packet Format | 5.1. ICN Traceroute Request NDN Packet Format | |||
| A traceroute request is encoded as an NDN Interest packet. Its | A traceroute request is encoded as an NDN Interest packet. Its | |||
| format is the following: | format is the following: | |||
| TracerouteRequest ::= INTEREST-TYPE TLV-LENGTH | TracerouteRequest ::= INTEREST-TYPE TLV-LENGTH | |||
| Name | Name | |||
| MustBeFresh | MustBeFresh | |||
| Nonce | Nonce | |||
| HopLimit | HopLimit | |||
| Parameters? | ApplicationParameters? | |||
| Figure 8: Traceroute Request NDN Packet Format | Figure 8: Traceroute Request NDN Packet Format | |||
| The name of a request consists of the target name, a nonce value (it | The name of a request consists of the target name, a nonce value (it | |||
| can be the value of the Nonce field) and the suffix "traceroute" to | can be the value of the Nonce field) and the suffix "traceroute" to | |||
| denote that this Interest is a traceroute request. | denote that this Interest is a traceroute request (added as a | |||
| KeywordNameComponent). When the "ApplicationParameters" element is | ||||
| present, a ParametersSha256DigestComponent is added as the last name | ||||
| component. | ||||
| The "Parameters" field of the Request contains the following | The "ApplicationParameters" field of the Request contains the | |||
| PathSteering TLV: | following PathSteering TLV: | |||
| PathSteering TLV ::= PATHSTEERING-TLV-TYPE TLV-LENGTH BYTE{8} | PathSteering TLV ::= PATHSTEERING-TLV-TYPE TLV-LENGTH 8*OCTET | |||
| Figure 9: PathSteering TLV | Figure 9: PathSteering TLV | |||
| Since the NDN packet format does not provide a mechanism to prevent | Since the NDN packet format does not provide a mechanism to prevent | |||
| the network from caching specific data packets, we instead use the | the network from caching specific data packets, we instead use the | |||
| MustBeFresh selector for requests (in combination with a Freshness | MustBeFresh selector for requests (in combination with a Freshness | |||
| Period TLV of value 0 for replies) to avoid fetching cached | Period TLV of value 0 for replies) to avoid fetching cached | |||
| traceroute replies with a freshness period that has expired | traceroute replies with a freshness period that has expired | |||
| [REALTIME]. | [REALTIME]. | |||
| 5.2. Traceroute Reply NDN Packet Format | 5.2. Traceroute Reply NDN Packet Format | |||
| A traceroute reply is encoded as an NDN Data packet. Its format is | A traceroute reply is encoded as an NDN Data packet. Its format is | |||
| the following: | the following: | |||
| TracerouteReply ::= DATA-TLV TLV-LENGTH | TracerouteReply ::= DATA-TLV TLV-LENGTH | |||
| PathSteering TLV | Name | |||
| Name | MetaInfo | |||
| MetaInfo | Content | |||
| Content | Signature | |||
| Signature | PathSteering TLV | |||
| Figure 10: Traceroute Reply NDN Packet Format | Figure 10: Traceroute Reply NDN Packet Format | |||
| Compared to the format of a regular NDN Data packet, a traceroute | Compared to the format of a regular NDN Data packet, a traceroute | |||
| reply contains a PathSteering TLV field, which is not included in the | reply contains a PathSteering TLV field, which is not included in the | |||
| security envelope, since it might be modified in a hop-by-hop fashion | security envelope, since it might be modified in a hop-by-hop fashion | |||
| by the forwarders along the reverse path. | by the forwarders along the reverse path. | |||
| The name of a traceroute reply is the name of the corresponding | The name of a traceroute reply is the name of the corresponding | |||
| traceroute request, while the format of the MetaInfo field is the | traceroute request, while the format of the MetaInfo field is the | |||
| following: | following: | |||
| MetaInfo ::= META-INFO-TYPE TLV-LENGTH | MetaInfo ::= META-INFO-TYPE TLV-LENGTH | |||
| ContentType | ContentType | |||
| FreshnessPeriod | FreshnessPeriod | |||
| Figure 11: MetaInfo TLV | Figure 11: MetaInfo TLV | |||
| The value of the ContentType TLV is 0. The same applies to the value | The value of the ContentType TLV is 0. The same applies to the value | |||
| of the FreshnessPeriod TLV, so that the replies are treated as stale | of the FreshnessPeriod TLV, so that the replies are treated as stale | |||
| data as soon as they are received by a forwarder. | data as soon as they are received by a forwarder (mentioned for | |||
| completeness, since these are the default values in NDN packet format | ||||
| v0.3). | ||||
| The content of a traceroute reply consists of the following 2 TLVs: | The content of a traceroute reply consists of the following 2 TLVs: | |||
| Sender's name (an NDN Name TLV) and Traceroute Reply Code. There is | Sender's name (an NDN Name TLV) and Traceroute Reply Code. There is | |||
| no need to have a separate TLV for the sender's signature in the | no need to have a separate TLV for the sender's signature in the | |||
| content of the reply, since every NDN data packet carries the | content of the reply, since every NDN data packet carries the | |||
| signature of the data producer. | signature of the data producer. | |||
| The Traceroute Reply Code TLV format is the following (with the | The Traceroute Reply Code TLV format is the following (with the | |||
| values specified in Section 4.2): | values specified in Section 4.2): | |||
| TrReplyCode ::= TRREPLYCODE-TLV-TYPE TLV-LENGTH BYTE{2} | TrReplyCode ::= TRREPLYCODE-TLV-TYPE TLV-LENGTH 2*OCTET | |||
| Figure 12: Traceroute Reply Code TLV | Figure 12: Traceroute Reply Code TLV | |||
| 6. Forwarder Operation | 6. Forwarder Operation | |||
| When a forwarder receives a traceroute request, the hop limit value | When a forwarder receives a traceroute request, the hop limit value | |||
| is checked and decremented and the target name (i.e, the name of the | is checked and decremented and the target name (i.e, the name of the | |||
| traceroute request without the last nonce name component and the | traceroute request without the last nonce name component as well as | |||
| suffix "traceroute" in the case of a request with the NDN packet | the suffix "traceroute" and the ParametersSha256DigestComponent in | |||
| format) is extracted. | the case of a request with the NDN packet format) is extracted. | |||
| If the HopLimit has not expired (its value is greater than 0), the | If the HopLimit has not expired (its value is greater than 0), the | |||
| forwarder will forward the request upstream based on CS lookup, PIT | forwarder will forward the request upstream based on CS lookup, PIT | |||
| creation, LPM lookup and the path steering value, if present. If no | creation, LPM lookup and the path steering value, if present. If no | |||
| valid next-hop is found, an InterestReturn indicating "No Route" in | valid next-hop is found, an InterestReturn indicating "No Route" in | |||
| the case of CCNx or a network NACK in the case of NDN is sent | the case of CCNx or a network NACK in the case of NDN is sent | |||
| downstream. | downstream. | |||
| If the HopLimit value is equal to zero, the forwarder generates a | If the HopLimit value is equal to zero, the forwarder generates a | |||
| traceroute reply. This reply includes the forwarder's administrative | traceroute reply. This reply includes the forwarder's administrative | |||
| skipping to change at page 18, line 16 ¶ | skipping to change at page 18, line 16 ¶ | |||
| traceroute session. | traceroute session. | |||
| In the case that a traceroute reply is not received for a request | In the case that a traceroute reply is not received for a request | |||
| within a certain time interval (lifetime of the request), the client | within a certain time interval (lifetime of the request), the client | |||
| should time-out and send a new request with a new nonce value up to a | should time-out and send a new request with a new nonce value up to a | |||
| maximum number of requests to be sent specified by the user. | maximum number of requests to be sent specified by the user. | |||
| Authors' Addresses | Authors' Addresses | |||
| Spyridon Mastorakis | Spyridon Mastorakis | |||
| University of Nebraska, Omaha | University of Nebraska at Omaha | |||
| Omaha, NE | Omaha, NE | |||
| United States of America | United States of America | |||
| Email: smastorakis@unomaha.edu | Email: smastorakis@unomaha.edu | |||
| Jim Gibson | Jim Gibson | |||
| Cisco Systems | Cisco Systems | |||
| Cambridge, MA | Cambridge, MA | |||
| United States of America | United States of America | |||
| Email: gibson@cisco.com | Email: gibson@cisco.com | |||
| Ilya Moiseenko | Ilya Moiseenko | |||
| Apple Inc | Apple Inc | |||
| Cupertino, CA | Cupertino, CA | |||
| United States of America | United States of America | |||
| Email: iliamo@mailbox.org | Email: iliamo@mailbox.org | |||
| Ralph Droms | Ralph Droms | |||
| Google Inc. | Google Inc. | |||
| Cambridge, MA | Cambridge, MA | |||
| United States of America | United States of America | |||
| Email: rdroms.ietf@gmail.com | Email: rdroms.ietf@gmail.com | |||
| Dave Oran | Dave Oran | |||
| Network Systems Research and Design | Network Systems Research and Design | |||
| Cambridge, MA | Cambridge, MA | |||
| United States of America | United States of America | |||
| Email: daveoran@orandom.net | Email: daveoran@orandom.net | |||
| End of changes. 20 change blocks. | ||||
| 28 lines changed or deleted | 29 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/ | ||||