draft-ietf-dtn-tcpclv4-17.txt   draft-ietf-dtn-tcpclv4-18.txt 
Delay Tolerant Networking B. Sipos Delay Tolerant Networking B. Sipos
Internet-Draft RKF Engineering Internet-Draft RKF Engineering
Obsoletes: 7242 (if approved) M. Demmer Intended status: Standards Track M. Demmer
Intended status: Standards Track UC Berkeley Expires: July 30, 2020 UC Berkeley
Expires: July 22, 2020 J. Ott J. Ott
Aalto University Aalto University
S. Perreault S. Perreault
January 19, 2020 January 27, 2020
Delay-Tolerant Networking TCP Convergence Layer Protocol Version 4 Delay-Tolerant Networking TCP Convergence Layer Protocol Version 4
draft-ietf-dtn-tcpclv4-17 draft-ietf-dtn-tcpclv4-18
Abstract Abstract
This document describes a TCP-based convergence layer (TCPCL) for This document describes a TCP-based convergence layer (TCPCL) for
Delay-Tolerant Networking (DTN). This version of the TCPCL protocol Delay-Tolerant Networking (DTN). This version of the TCPCL protocol
is based on implementation issues in the earlier TCPCL Version 3 of is based on implementation issues in the earlier TCPCL Version 3 of
RFC7242 and updates to the Bundle Protocol (BP) contents, encodings, RFC7242 and updates to the Bundle Protocol (BP) contents, encodings,
and convergence layer requirements in BP Version 7. Specifically, and convergence layer requirements in BP Version 7. Specifically,
the TCPCLv4 uses CBOR-encoded BPv7 bundles as its service data unit the TCPCLv4 uses CBOR-encoded BPv7 bundles as its service data unit
being transported and provides a reliable transport of such bundles. being transported and provides a reliable transport of such bundles.
This document is an update of the protocol described in RFC7242,
reflecting lessons learned. For this reason it obsoletes RFC7242, an
IRTF-stream document.
Note to the RFC editor: The Internet Research Task Force is requested
to mark RFC7242 as obsolete.
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.
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 July 22, 2020. This Internet-Draft will expire on July 30, 2020.
Copyright Notice Copyright Notice
Copyright (c) 2020 IETF Trust and the persons identified as the Copyright (c) 2020 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 Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of (https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Scope . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.1. Scope . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2. Requirements Language . . . . . . . . . . . . . . . . . . . . 5 2. Requirements Language . . . . . . . . . . . . . . . . . . . . 5
2.1. Definitions Specific to the TCPCL Protocol . . . . . . . 5 2.1. Definitions Specific to the TCPCL Protocol . . . . . . . 5
3. General Protocol Description . . . . . . . . . . . . . . . . 9 3. General Protocol Description . . . . . . . . . . . . . . . . 8
3.1. Convergence Layer Services . . . . . . . . . . . . . . . 9 3.1. Convergence Layer Services . . . . . . . . . . . . . . . 8
3.2. TCPCL Session Overview . . . . . . . . . . . . . . . . . 11 3.2. TCPCL Session Overview . . . . . . . . . . . . . . . . . 10
3.3. TCPCL States and Transitions . . . . . . . . . . . . . . 13 3.3. TCPCL States and Transitions . . . . . . . . . . . . . . 12
3.4. Transfer Segmentation Policies . . . . . . . . . . . . . 19 3.4. Transfer Segmentation Policies . . . . . . . . . . . . . 18
3.5. Example Message Exchange . . . . . . . . . . . . . . . . 20 3.5. Example Message Exchange . . . . . . . . . . . . . . . . 19
4. Session Establishment . . . . . . . . . . . . . . . . . . . . 21 4. Session Establishment . . . . . . . . . . . . . . . . . . . . 20
4.1. TCP Connection . . . . . . . . . . . . . . . . . . . . . 22 4.1. TCP Connection . . . . . . . . . . . . . . . . . . . . . 21
4.2. Contact Header . . . . . . . . . . . . . . . . . . . . . 23 4.2. Contact Header . . . . . . . . . . . . . . . . . . . . . 22
4.3. Contact Validation and Negotiation . . . . . . . . . . . 24 4.3. Contact Validation and Negotiation . . . . . . . . . . . 23
4.4. Session Security . . . . . . . . . . . . . . . . . . . . 25 4.4. Session Security . . . . . . . . . . . . . . . . . . . . 24
4.4.1. TLS Handshake . . . . . . . . . . . . . . . . . . . . 25 4.4.1. TLS Handshake . . . . . . . . . . . . . . . . . . . . 24
4.4.2. TLS Authentication . . . . . . . . . . . . . . . . . 27 4.4.2. TLS Authentication . . . . . . . . . . . . . . . . . 26
4.4.3. Example TLS Initiation . . . . . . . . . . . . . . . 28 4.4.3. Example TLS Initiation . . . . . . . . . . . . . . . 27
4.5. Message Header . . . . . . . . . . . . . . . . . . . . . 29 4.5. Message Header . . . . . . . . . . . . . . . . . . . . . 28
4.6. Session Initialization Message (SESS_INIT) . . . . . . . 31 4.6. Session Initialization Message (SESS_INIT) . . . . . . . 30
4.7. Session Parameter Negotiation . . . . . . . . . . . . . . 32 4.7. Session Parameter Negotiation . . . . . . . . . . . . . . 31
4.8. Session Extension Items . . . . . . . . . . . . . . . . . 33 4.8. Session Extension Items . . . . . . . . . . . . . . . . . 32
5. Established Session Operation . . . . . . . . . . . . . . . . 34 5. Established Session Operation . . . . . . . . . . . . . . . . 33
5.1. Upkeep and Status Messages . . . . . . . . . . . . . . . 34 5.1. Upkeep and Status Messages . . . . . . . . . . . . . . . 33
5.1.1. Session Upkeep (KEEPALIVE) . . . . . . . . . . . . . 35 5.1.1. Session Upkeep (KEEPALIVE) . . . . . . . . . . . . . 34
5.1.2. Message Rejection (MSG_REJECT) . . . . . . . . . . . 35 5.1.2. Message Rejection (MSG_REJECT) . . . . . . . . . . . 34
5.2. Bundle Transfer . . . . . . . . . . . . . . . . . . . . . 36 5.2. Bundle Transfer . . . . . . . . . . . . . . . . . . . . . 35
5.2.1. Bundle Transfer ID . . . . . . . . . . . . . . . . . 37 5.2.1. Bundle Transfer ID . . . . . . . . . . . . . . . . . 36
5.2.2. Data Transmission (XFER_SEGMENT) . . . . . . . . . . 37 5.2.2. Data Transmission (XFER_SEGMENT) . . . . . . . . . . 36
5.2.3. Data Acknowledgments (XFER_ACK) . . . . . . . . . . . 39 5.2.3. Data Acknowledgments (XFER_ACK) . . . . . . . . . . . 38
5.2.4. Transfer Refusal (XFER_REFUSE) . . . . . . . . . . . 40 5.2.4. Transfer Refusal (XFER_REFUSE) . . . . . . . . . . . 39
5.2.5. Transfer Extension Items . . . . . . . . . . . . . . 43 5.2.5. Transfer Extension Items . . . . . . . . . . . . . . 42
6. Session Termination . . . . . . . . . . . . . . . . . . . . . 45 6. Session Termination . . . . . . . . . . . . . . . . . . . . . 44
6.1. Session Termination Message (SESS_TERM) . . . . . . . . . 45 6.1. Session Termination Message (SESS_TERM) . . . . . . . . . 44
6.2. Idle Session Shutdown . . . . . . . . . . . . . . . . . . 47 6.2. Idle Session Shutdown . . . . . . . . . . . . . . . . . . 46
7. Implementation Status . . . . . . . . . . . . . . . . . . . . 47 7. Implementation Status . . . . . . . . . . . . . . . . . . . . 46
8. Security Considerations . . . . . . . . . . . . . . . . . . . 48 8. Security Considerations . . . . . . . . . . . . . . . . . . . 47
8.1. Threat: Passive Leak of Node Data . . . . . . . . . . . . 48 8.1. Threat: Passive Leak of Node Data . . . . . . . . . . . . 47
8.2. Threat: Passive Leak of Bundle Data . . . . . . . . . . . 48 8.2. Threat: Passive Leak of Bundle Data . . . . . . . . . . . 47
8.3. Threat: TCPCL Version Downgrade . . . . . . . . . . . . . 48 8.3. Threat: TCPCL Version Downgrade . . . . . . . . . . . . . 47
8.4. Threat: Transport Security Stripping . . . . . . . . . . 48 8.4. Threat: Transport Security Stripping . . . . . . . . . . 47
8.5. Threat: Weak Ciphersuite Downgrade . . . . . . . . . . . 49 8.5. Threat: Weak Ciphersuite Downgrade . . . . . . . . . . . 48
8.6. Threat: Invalid Certificate Use . . . . . . . . . . . . . 49 8.6. Threat: Invalid Certificate Use . . . . . . . . . . . . . 48
8.7. Threat: Symmetric Key Overuse . . . . . . . . . . . . . . 49 8.7. Threat: Symmetric Key Overuse . . . . . . . . . . . . . . 48
8.8. Threat: BP Node Impersonation . . . . . . . . . . . . . . 49 8.8. Threat: BP Node Impersonation . . . . . . . . . . . . . . 48
8.9. Threat: Denial of Service . . . . . . . . . . . . . . . . 50 8.9. Threat: Denial of Service . . . . . . . . . . . . . . . . 49
8.10. Alternate Uses of TLS . . . . . . . . . . . . . . . . . . 51 8.10. Alternate Uses of TLS . . . . . . . . . . . . . . . . . . 50
8.10.1. TLS Without Authentication . . . . . . . . . . . . . 51 8.10.1. TLS Without Authentication . . . . . . . . . . . . . 50
8.10.2. Non-Certificate TLS Use . . . . . . . . . . . . . . 51 8.10.2. Non-Certificate TLS Use . . . . . . . . . . . . . . 50
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 51 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 50
9.1. Port Number . . . . . . . . . . . . . . . . . . . . . . . 52 9.1. Port Number . . . . . . . . . . . . . . . . . . . . . . . 51
9.2. Protocol Versions . . . . . . . . . . . . . . . . . . . . 52 9.2. Protocol Versions . . . . . . . . . . . . . . . . . . . . 51
9.3. Session Extension Types . . . . . . . . . . . . . . . . . 53 9.3. Session Extension Types . . . . . . . . . . . . . . . . . 52
9.4. Transfer Extension Types . . . . . . . . . . . . . . . . 54 9.4. Transfer Extension Types . . . . . . . . . . . . . . . . 53
9.5. Message Types . . . . . . . . . . . . . . . . . . . . . . 55 9.5. Message Types . . . . . . . . . . . . . . . . . . . . . . 54
9.6. XFER_REFUSE Reason Codes . . . . . . . . . . . . . . . . 56 9.6. XFER_REFUSE Reason Codes . . . . . . . . . . . . . . . . 55
9.7. SESS_TERM Reason Codes . . . . . . . . . . . . . . . . . 57 9.7. SESS_TERM Reason Codes . . . . . . . . . . . . . . . . . 56
9.8. MSG_REJECT Reason Codes . . . . . . . . . . . . . . . . . 58 9.8. MSG_REJECT Reason Codes . . . . . . . . . . . . . . . . . 57
10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 59 10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 58
11. References . . . . . . . . . . . . . . . . . . . . . . . . . 59 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 58
11.1. Normative References . . . . . . . . . . . . . . . . . . 59 11.1. Normative References . . . . . . . . . . . . . . . . . . 58
11.2. Informative References . . . . . . . . . . . . . . . . . 61 11.2. Informative References . . . . . . . . . . . . . . . . . 60
Appendix A. Significant changes from RFC7242 . . . . . . . . . . 62 Appendix A. Significant changes from RFC7242 . . . . . . . . . . 61
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 63 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 62
1. Introduction 1. Introduction
This document describes the TCP-based convergence-layer protocol for This document describes the TCP-based convergence-layer protocol for
Delay-Tolerant Networking. Delay-Tolerant Networking is an end-to- Delay-Tolerant Networking. Delay-Tolerant Networking is an end-to-
end architecture providing communications in and/or through highly end architecture providing communications in and/or through highly
stressed environments, including those with intermittent stressed environments, including those with intermittent
connectivity, long and/or variable delays, and high bit error rates. connectivity, long and/or variable delays, and high bit error rates.
More detailed descriptions of the rationale and capabilities of these More detailed descriptions of the rationale and capabilities of these
networks can be found in "Delay-Tolerant Network Architecture" networks can be found in "Delay-Tolerant Network Architecture"
skipping to change at page 4, line 23 skipping to change at page 4, line 14
without the version suffix refers to BPv7. For the remainder of this without the version suffix refers to BPv7. For the remainder of this
document, the abbreviation "TCPCL" without the version suffix refers document, the abbreviation "TCPCL" without the version suffix refers
to TCPCLv4. to TCPCLv4.
The locations of the TCPCL and the BP in the Internet model protocol The locations of the TCPCL and the BP in the Internet model protocol
stack (described in [RFC1122]) are shown in Figure 1. In particular, stack (described in [RFC1122]) are shown in Figure 1. In particular,
when BP is using TCP as its bearer with TCPCL as its convergence when BP is using TCP as its bearer with TCPCL as its convergence
layer, both BP and TCPCL reside at the application layer of the layer, both BP and TCPCL reside at the application layer of the
Internet model. Internet model.
This document is an update of the protocol described in RFC7242,
reflecting lessons learned. For this reason it obsoletes RFC7242, an
IRTF-stream document.
Note to the RFC editor: The Internet Research Task Force is requested
to mark RFC7242 as obsolete.
+-------------------------+ +-------------------------+
| DTN Application | -\ | DTN Application | -\
+-------------------------| | +-------------------------| |
| Bundle Protocol (BP) | -> Application Layer | Bundle Protocol (BP) | -> Application Layer
+-------------------------+ | +-------------------------+ |
| TCP Conv. Layer (TCPCL) | | | TCP Conv. Layer (TCPCL) | |
+-------------------------+ | +-------------------------+ |
| TLS (optional) | -/ | TLS (optional) | -/
+-------------------------+ +-------------------------+
| TCP | ---> Transport Layer | TCP | ---> Transport Layer
 End of changes. 8 change blocks. 
81 lines changed or deleted 67 lines changed or added

This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/