< 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/