rfc9507v5.txt   rfc9507.txt 
Internet Research Task Force (IRTF) S. Mastorakis Internet Research Task Force (IRTF) S. Mastorakis
Request for Comments: 9507 University of Notre Dame Request for Comments: 9507 University of Notre Dame
Category: Experimental D. Oran Category: Experimental D. Oran
ISSN: 2070-1721 Network Systems Research and Design ISSN: 2070-1721 Network Systems Research and Design
I. Moiseenko I. Moiseenko
Apple Inc. Apple Inc.
J. Gibson J. Gibson
R. Droms R. Droms
Unaffiliated Unaffiliated
February 2024 March 2024
Information-Centric Networking (ICN) Traceroute Protocol Specification Information-Centric Networking (ICN) Traceroute Protocol Specification
Abstract Abstract
This document presents the design of an Information-Centric This document presents the design of an Information-Centric
Networking (ICN) Traceroute protocol. This includes the operation of Networking (ICN) Traceroute protocol. This includes the operation of
both the client and the forwarder. both the client and the forwarder.
This document is a product of the Information-Centric Networking This document is a product of the Information-Centric Networking
skipping to change at line 242 skipping to change at line 242
The term "traceroute session" is used for an iterative process during The term "traceroute session" is used for an iterative process during
which an endpoint client application generates a number of traceroute which an endpoint client application generates a number of traceroute
requests to successively traverse more distant hops in the path until requests to successively traverse more distant hops in the path until
it receives a final traceroute reply from a forwarder. It is it receives a final traceroute reply from a forwarder. It is
desirable that ICN Traceroute be able to discover a number of paths desirable that ICN Traceroute be able to discover a number of paths
towards the expressed prefix within the same session or subsequent towards the expressed prefix within the same session or subsequent
sessions. To discover all the hops in a path, we need a mechanism sessions. To discover all the hops in a path, we need a mechanism
(Interest Steering) to steer requests along different paths. Such a (Interest Steering) to steer requests along different paths. Such a
capability was initially published in [PATHSTEERING] and has been capability was initially published in [PATHSTEERING] and has been
specified for CCNx and NDN in [PATHSTEERING-CCNx-NDN]. specified for CCNx and NDN in [RFC9531].
In the case of traceroute requests for the same prefix from different In the case of traceroute requests for the same prefix from different
sources, it is also important to have a mechanism to avoid sources, it is also important to have a mechanism to avoid
aggregating those requests in the PIT. To this end, we need some aggregating those requests in the PIT. To this end, we need some
encoding in the traceroute requests to make each request for a common encoding in the traceroute requests to make each request for a common
prefix unique, hence avoiding PIT aggregation and further enabling prefix unique, hence avoiding PIT aggregation and further enabling
the exact matching of a response with a particular traceroute packet. the exact matching of a response with a particular traceroute packet.
The packet types and formats are presented in Section 4. Procedures The packet types and formats are presented in Section 4. Procedures
for determining and indicating that a destination has been reached for determining and indicating that a destination has been reached
skipping to change at line 299 skipping to change at line 299
packet type field is PT_TR_REQUEST. See Section 9 for the value packet type field is PT_TR_REQUEST. See Section 9 for the value
assignment. assignment.
In contrast to the typical format of a CCNx packet header [RFC8609], In contrast to the typical format of a CCNx packet header [RFC8609],
there is a new optional fixed header added to the packet header: there is a new optional fixed header added to the packet header:
* A Path Steering hop-by-hop header TLV, which is constructed hop by * A Path Steering hop-by-hop header TLV, which is constructed hop by
hop in the traceroute reply and included in the traceroute request hop in the traceroute reply and included in the traceroute request
to steer consecutive requests expressed by a client towards a to steer consecutive requests expressed by a client towards a
common forwarding path or different forwarding paths. The Path common forwarding path or different forwarding paths. The Path
Label TLV is specified in [PATHSTEERING-CCNx-NDN]. Label TLV is specified in [RFC9531].
The message of a traceroute request is presented below: The message of a traceroute request is presented below:
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 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
+---------------+---------------+---------------+---------------+ +---------------+---------------+---------------+---------------+
| | | | | |
| MessageType = 1 | MessageLength | | MessageType = 0x05 | MessageLength |
| | | | | |
+---------------+---------------+---------------+---------------+ +---------------+---------------+---------------+---------------+
| | | |
| Name TLV | | Name TLV |
| | | |
+---------------+---------------+---------------+---------------+ +---------------+---------------+---------------+---------------+
Figure 2: Traceroute Request Message Format Figure 2: Traceroute Request Message Format
The traceroute request message is of type Interest in order to The traceroute request message is of type T_DISCOVERY. The Name TLV
leverage the Interest forwarding behavior provided by the network. has the structure described in [RFC8609]. The name consists of the
The Name TLV has the structure described in [RFC8609]. The name target (destination) prefix appended with a nonce typed name as its
consists of the target (destination) prefix appended with a nonce last segment. The nonce can be encoded as a base64-encoded string
typed name as its last segment. The nonce can be encoded as a with the URL-safe alphabet as defined in Section 5 of [RFC4648], with
base64-encoded string with the URL-safe alphabet as defined in padding omitted. The format of this TLV is a 64-bit nonce. See
Section 5 of [RFC4648], with padding omitted. The format of this TLV [RFC9508] for the value assignment. The purpose of the nonce is to
is a 64-bit nonce. See [RFC9508] for the value assignment. The avoid Interest aggregation and allow client matching of replies with
purpose of the nonce is to avoid Interest aggregation and allow requests. As described below, the nonce is ignored for CS checking.
client matching of replies with requests. As described below, the
nonce is ignored for CS checking.
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 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
+---------------+---------------+---------------+---------------+ +---------------+---------------+---------------+---------------+
| | | | | |
| Name_Nonce_Type | Name_Nonce_Length = 8 | | Name_Nonce_Type | Name_Nonce_Length = 8 |
| | | | | |
+---------------+---------------+---------------+---------------+ +---------------+---------------+---------------+---------------+
| | | |
| | | |
| | | |
skipping to change at line 374 skipping to change at line 372
| | | |
+---------------+---------------+---------------+---------------+ +---------------+---------------+---------------+---------------+
Figure 4: Traceroute Reply CCNx Packet Format Figure 4: Traceroute Reply CCNx Packet Format
The header of a traceroute reply consists of the header fields of a The header of a traceroute reply consists of the header fields of a
CCNx Content Object and a hop-by-hop Path Steering TLV. The value of CCNx Content Object and a hop-by-hop Path Steering TLV. The value of
the packet type field is PT_TR_REPLY. See Section 9 for the value the packet type field is PT_TR_REPLY. See Section 9 for the value
assignment. assignment.
A traceroute reply message is of type Content Object and contains a A traceroute reply message is of type T_OBJECT and contains a Name
Name TLV (name of the corresponding traceroute request), a TLV (name of the corresponding traceroute request), a PayloadType
PayloadType TLV, and an ExpiryTime TLV with a value of 0 to indicate TLV, and an ExpiryTime TLV with a value of 0 to indicate that replies
that replies must not be returned from network caches. must not be returned from network caches.
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 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
+---------------+---------------+---------------+---------------+ +---------------+---------------+---------------+---------------+
| | | | | |
| MessageType = 2 | MessageLength | | MessageType = 0x06 | MessageLength |
| | | | | |
+---------------+---------------+---------------+---------------+ +---------------+---------------+---------------+---------------+
| | | |
| Name TLV | | Name TLV |
| | | |
+---------------+---------------+---------------+---------------+ +---------------+---------------+---------------+---------------+
| | | |
| PayloadType TLV | | PayloadType TLV |
| | | |
+---------------+---------------+---------------+---------------+ +---------------+---------------+---------------+---------------+
skipping to change at line 498 skipping to change at line 496
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 (added as a denote that this Interest is a traceroute request (added as a
KeywordNameComponent [NDNTLV]). When the "ApplicationParameters" KeywordNameComponent [NDNTLV]). When the "ApplicationParameters"
element is present, a ParametersSha256DigestComponent (Section 6) is element is present, a ParametersSha256DigestComponent (Section 6) is
added as the last name segment. added as the last name segment.
A traceroute request MAY carry a Path Label TLV in the NDN Link A traceroute request MAY carry a Path Label TLV in the NDN Link
Adaptation Protocol [NDNLPv2] as specified in Adaptation Protocol [NDNLPv2] as specified in [RFC9531].
[PATHSTEERING-CCNx-NDN].
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 TLV for requests (in combination with a FreshnessPeriod MustBeFresh TLV for requests (in combination with a FreshnessPeriod
TLV with a value of 1 for replies) to avoid fetching cached TLV with a value of 1 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. ICN Traceroute Reply NDN Packet Format 5.2. ICN Traceroute Reply NDN Packet Format
skipping to change at line 522 skipping to change at line 519
TracerouteReply = DATA-TLV TLV-LENGTH TracerouteReply = DATA-TLV TLV-LENGTH
Name Name
MetaInfo MetaInfo
Content Content
Signature Signature
Figure 9: Traceroute Reply NDN Packet Format Figure 9: Traceroute Reply NDN Packet Format
A traceroute reply MAY carry a Path Label TLV in the NDN Link A traceroute reply MAY carry a Path Label TLV in the NDN Link
Adaptation Protocol [NDNLPv2] as specified in Adaptation Protocol [NDNLPv2] as specified in [RFC9531], since it
[PATHSTEERING-CCNx-NDN], since it might be modified in a hop-by-hop might be modified in a hop-by-hop fashion by the forwarders along the
fashion by the forwarders along the reverse path. 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 as traceroute request while the format of the MetaInfo field is as
follows: follows:
MetaInfo = META-INFO-TYPE TLV-LENGTH MetaInfo = META-INFO-TYPE TLV-LENGTH
ContentType ContentType
FreshnessPeriod FreshnessPeriod
Figure 10: MetaInfo TLV Figure 10: MetaInfo TLV
skipping to change at line 736 skipping to change at line 733
DOI 10.17487/RFC8793, June 2020, DOI 10.17487/RFC8793, June 2020,
<https://www.rfc-editor.org/info/rfc8793>. <https://www.rfc-editor.org/info/rfc8793>.
10.2. Informative References 10.2. Informative References
[NDNLPv2] NDN team, "NDNLPv2: Named Data Networking Link Adaptation [NDNLPv2] NDN team, "NDNLPv2: Named Data Networking Link Adaptation
Protocol v2", February 2023, <https://redmine.named- Protocol v2", February 2023, <https://redmine.named-
data.net/projects/nfd/wiki/NDNLPv2>. data.net/projects/nfd/wiki/NDNLPv2>.
[NDNTLV] NDN project team, "NDN Packet Format Specification", [NDNTLV] NDN project team, "NDN Packet Format Specification",
September 2023, February 2024,
<https://named-data.net/doc/NDN-packet-spec/current/>. <https://named-data.net/doc/NDN-packet-spec/current/>.
[PATHSTEERING] [PATHSTEERING]
Moiseenko, I. and D. Oran, "Path switching in content Moiseenko, I. and D. Oran, "Path switching in content
centric and named data networks", ICN '17: Proceedings of centric and named data networks", ICN '17: Proceedings of
the 4th ACM Conference on Information-Centric Networking, the 4th ACM Conference on Information-Centric Networking,
pp. 66-76, DOI 10.1145/3125719.3125721, September 2017, pp. 66-76, DOI 10.1145/3125719.3125721, September 2017,
<https://dl.acm.org/doi/10.1145/3125719.3125721>. <https://dl.acm.org/doi/10.1145/3125719.3125721>.
[PATHSTEERING-CCNx-NDN]
Moiseenko, I. and D. Oran, "Path Steering in CCNx and
NDN", Work in Progress, Internet-Draft, draft-irtf-icnrg-
pathsteering-07, 29 September 2023,
<https://datatracker.ietf.org/doc/html/draft-irtf-icnrg-
pathsteering-07>.
[REALTIME] Mastorakis, S., Gusev, P., Afanasyev, A., and L. Zhang, [REALTIME] Mastorakis, S., Gusev, P., Afanasyev, A., and L. Zhang,
"Real-Time Data Retrieval in Named Data Networking", 2018 "Real-Time Data Retrieval in Named Data Networking", 2018
1st IEEE International Conference on Hot Information- 1st IEEE International Conference on Hot Information-
Centric Networking (HotICN), Shenzhen, China, pp. 61-66, Centric Networking (HotICN), Shenzhen, China, pp. 61-66,
DOI 10.1109/HOTICN.2018.8605992, August 2018, DOI 10.1109/HOTICN.2018.8605992, August 2018,
<https://ieeexplore.ieee.org/document/8605992>. <https://ieeexplore.ieee.org/document/8605992>.
[RFC4648] Josefsson, S., "The Base16, Base32, and Base64 Data [RFC4648] Josefsson, S., "The Base16, Base32, and Base64 Data
Encodings", RFC 4648, DOI 10.17487/RFC4648, October 2006, Encodings", RFC 4648, DOI 10.17487/RFC4648, October 2006,
<https://www.rfc-editor.org/info/rfc4648>. <https://www.rfc-editor.org/info/rfc4648>.
[RFC9344] Asaeda, H., Ooka, A., and X. Shao, "CCNinfo: Discovering [RFC9344] Asaeda, H., Ooka, A., and X. Shao, "CCNinfo: Discovering
Content and Network Information in Content-Centric Content and Network Information in Content-Centric
Networks", RFC 9344, DOI 10.17487/RFC9344, February 2023, Networks", RFC 9344, DOI 10.17487/RFC9344, February 2023,
<https://www.rfc-editor.org/info/rfc9344>. <https://www.rfc-editor.org/info/rfc9344>.
[RFC9508] Mastorakis, S., Oran, D., Gibson, J., Moiseenko, I., and [RFC9508] Mastorakis, S., Oran, D., Gibson, J., Moiseenko, I., and
R. Droms, "Information-Centric Networking (ICN) Ping R. Droms, "Information-Centric Networking (ICN) Ping
Protocol Specification", RFC 9508, DOI 10.17487/RFC9508, Protocol Specification", RFC 9508, DOI 10.17487/RFC9508,
February 2024, <https://www.rfc-editor.org/info/rfc9508>. March 2024, <https://www.rfc-editor.org/info/rfc9508>.
[RFC9531] Moiseenko, I. and D. Oran, "Path Steering in Content-
Centric Networking (CCNx) and Named Data Networking
(NDN)", RFC 9531, DOI 10.17487/RFC9531, March 2024,
<https://www.rfc-editor.org/info/rfc9531>.
[SNAMP] Afanasyev, A., Yi, C., Wang, L., Zhang, B., and L. Zhang, [SNAMP] Afanasyev, A., Yi, C., Wang, L., Zhang, B., and L. Zhang,
"SNAMP: Secure namespace mapping to scale NDN forwarding", "SNAMP: Secure namespace mapping to scale NDN forwarding",
2015 IEEE Conference on Computer Communications Workshops 2015 IEEE Conference on Computer Communications Workshops
(INFOCOM WKSHPS), Hong Kong, China, pp. 281-286, (INFOCOM WKSHPS), Hong Kong, China, pp. 281-286,
DOI 10.1109/INFCOMW.2015.7179398, April 2015, DOI 10.1109/INFCOMW.2015.7179398, April 2015,
<https://ieeexplore.ieee.org/abstract/document/7179398>. <https://ieeexplore.ieee.org/abstract/document/7179398>.
Appendix A. Traceroute Client Application (Consumer) Operation Appendix A. Traceroute Client Application (Consumer) Operation
 End of changes. 12 change blocks. 
34 lines changed or deleted 29 lines changed or added

This html diff was produced by rfcdiff 1.48.