draft-ietf-tsvwg-sctp-udp-encaps-04.txt   draft-ietf-tsvwg-sctp-udp-encaps-05.txt 
Network Working Group M. Tuexen Network Working Group M. Tuexen
Internet-Draft Muenster Univ. of Appl. Sciences Internet-Draft Muenster Univ. of Appl. Sciences
Intended status: Standards Track R. Stewart Intended status: Standards Track R. Stewart
Expires: January 6, 2013 Adara Networks Expires: April 22, 2013 Adara Networks
July 5, 2012 October 19, 2012
UDP Encapsulation of SCTP Packets UDP Encapsulation of SCTP Packets
draft-ietf-tsvwg-sctp-udp-encaps-04.txt draft-ietf-tsvwg-sctp-udp-encaps-05.txt
Abstract Abstract
This document describes a simple method of encapsulating SCTP Packets This document describes a simple method of encapsulating SCTP Packets
into UDP packets and its limitations. This allows the usage of SCTP into UDP packets and its limitations. This allows the usage of SCTP
in networks with legacy NAT not supporting SCTP. It can also be used in networks with legacy NAT not supporting SCTP. It can also be used
to implement SCTP on hosts without directly accessing the IP-layer, to implement SCTP on hosts without directly accessing the IP-layer,
for example implementing it as part of the application without for example implementing it as part of the application without
requiring special privileges. requiring special privileges.
skipping to change at page 1, line 36 skipping to change at page 1, line 36
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 http://datatracker.ietf.org/drafts/current/. Drafts is at http://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 January 6, 2013. This Internet-Draft will expire on April 22, 2013.
Copyright Notice Copyright Notice
Copyright (c) 2012 IETF Trust and the persons identified as the Copyright (c) 2012 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
(http://trustee.ietf.org/license-info) in effect on the date of (http://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
skipping to change at page 5, line 51 skipping to change at page 6, line 5
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SCTP Chunk #1 | | SCTP Chunk #1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ... | | ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SCTP Chunk #n | | SCTP Chunk #n |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 2: An SCTP/UDP/IPv6 packet Figure 2: An SCTP/UDP/IPv6 packet
The UDP checksum MUST NOT be zero.
4.3. Encapsulation Procedure 4.3. Encapsulation Procedure
When inserting the UDP header, the source port is the local UDP When inserting the UDP header, the source port is the local UDP
encapsulation port number of the SCTP stack, the destination port is encapsulation port number of the SCTP stack, the destination port is
the remote UDP encapsulation port number stored for the destination the remote UDP encapsulation port number stored for the destination
address the packet is sent to (see Section 4.1). address to which the packet is sent (see Section 4.1).
The length of the UDP packet is the length of the SCTP packet plus The length of the UDP packet is the length of the SCTP packet plus
the size of the UDP header. the size of the UDP header.
The UDP checksum SHOULD be computed and the SCTP checksum MUST be For IPv4, the UDP checksum SHOULD be computed and the SCTP checksum
computed. MUST be computed, whereas for IPv6, the UDP checksum and the SCTP
checksum MUST be computed.
4.4. Decapsulation Procedure 4.4. Decapsulation Procedure
When an encapsulated packet is received, the UDP header is removed. When an encapsulated packet is received, the UDP header is removed.
Then a lookup is performed to find the association the received SCTP Then a lookup is performed to find the association for the received
packet belongs to. The UDP source port is stored as the SCTP packet. The UDP source port is stored as the encapsulation port
encapsulation port for the destination address the SCTP packet is for the destination address the SCTP packet is received from (see
received from (see Section 4.1). Section 4.1).
Please note that when a non-encapsulated SCTP packet is received, the Please note that when a non-encapsulated SCTP packet is received, the
encapsulation of outgoing packets belonging to the same association encapsulation of outgoing packets belonging to the same association
and the corresponding destination address is disabled. and the corresponding destination address is disabled.
4.5. ICMP Considerations 4.5. ICMP Considerations
When receiving ICMP or ICMPv6 response packets, there might not be When receiving ICMP or ICMPv6 response packets, there might not be
enough bytes in the payload to identify the SCTP association which enough bytes in the payload to identify the SCTP association which
the SCTP packet triggering the ICMP or ICMPv6 packet belongs to. If the SCTP packet triggering the ICMP or ICMPv6 packet belongs to. If
a received ICMP or ICMPv6 packet can not be related to a specific a received ICMP or ICMPv6 packet can not be related to a specific
SCTP association, it MUST be discarded silently. This means in SCTP association or the verification tag can't be verified, it MUST
particular that the SCTP stack MUST NOT rely on receiving ICMP or be discarded silently. This means in particular that the SCTP stack
ICMPv6 messages. There MAY be implementation constraints not MUST NOT rely on receiving ICMP or ICMPv6 messages. Implementation
allowing to process received ICMP or ICMPv6 messages at all. constraints could prevent processing received ICMP or ICMPv6
messages.
If received ICMP or ICMPv6 messages are processed, the following If received ICMP or ICMPv6 messages are processed, the following
mapping SHOULD apply: mapping SHOULD apply:
1. ICMP messages with type 'Destination Unreachable' and code 'Port 1. ICMP messages with type 'Destination Unreachable' and code 'Port
Unreachable' SHOULD be treated as ICMP messages with type Unreachable' SHOULD be treated as ICMP messages with type
'Protocol Unreachable' and code 'Destination Port unreachable. 'Protocol Unreachable' and code 'Destination Port unreachable.
See [RFC0792] for more details. See [RFC0792] for more details.
2. ICMPv6 messages with type 'Destination Unreachable' and code 2. ICMPv6 messages with type 'Destination Unreachable' and code
'Port unreachable' SHOULD be treated as ICMPv6 messages with type 'Port unreachable' SHOULD be treated as ICMPv6 messages with type
'Parameter Problem' and code 'Unrecognized Next Header type 'Parameter Problem' and code 'Unrecognized Next Header type
encountered'. See [RFC4443] for more details. encountered'. See [RFC4443] for more details.
4.6. Path MTU Considerations 4.6. Path MTU Considerations
If an SCTP endpoint starts to encapsulate the packets of a path, it If an SCTP endpoint starts to encapsulate the packets of a path, it
MUST decrease the path MTU of that path by the size of the UDP MUST decrease the Path MTU of that path by the size of the UDP
header. If it stops encapsulating them, the path MTU SHOULD be header. If it stops encapsulating them, the Path MTU SHOULD be
increased by the size of the UDP header. increased by the size of the UDP header.
When performing path MTU discovery as described in [RFC4820] and When performing Path MTU discovery as described in [RFC4820] and
[RFC4821] it MUST be taken into account that one cannot rely on the [RFC4821] it MUST be taken into account that one cannot rely on the
feedback provided by ICMP or ICMPv6 due to the limitation laid out in feedback provided by ICMP or ICMPv6 due to the limitation laid out in
Section 4.5. Section 4.5.
If the implementation does not allow to control the dont't fragment If the implementation does not allow to control the dont't fragment
(DF)-bit contained in the IPv4 header, path MTU discovery can't be (DF)-bit contained in the IPv4 header, then Path MTU discovery can't
used. In this case, an implementation specific value should be used be used. In this case, an implementation specific value should be
instead. used instead.
4.7. Handling of Embedded IP-addresses 4.7. Handling of Embedded IP-addresses
When using UDP encapsulation for legacy NAT traversal, IP addresses When using UDP encapsulation for legacy NAT traversal, IP addresses
that might require translation MUST NOT be put into any SCTP packet. that might require translation MUST NOT be put into any SCTP packet.
This means that a multi homed SCTP association is setup initially as This means that a multi homed SCTP association is setup initially as
a singled homed one and the protocol extension [RFC5061] in a singled homed one and the protocol extension [RFC5061] in
combination with [RFC4895] is used to add the other addresses. Only combination with [RFC4895] is used to add the other addresses. Only
wildcard addresses are put into the SCTP packet. wildcard addresses are put into the SCTP packet.
When addresses are changed during the lifetime of an association When addresses are changed during the lifetime of an association
[RFC5061] MUST be used with wildcard addresses only. [RFC5061] MUST be used with wildcard addresses only.
4.8. ECN Considerations 4.8. ECN Considerations
If the implementation supports the sending and receiving of the ECN If the implementation supports the sending and receiving of the ECN
bits for the IP protocols being used by an SCTP association, the ECN bits for the IP protocols being used by an SCTP association, the ECN
bits MUST NOT be changed during encapsulation and decapsulation. In bits MUST NOT be changed during sending and receiving. In the other
the other case, ECN MUST NOT be used for such an SCTP association. case, ECN MUST NOT be used for such an SCTP association.
5. Socket API Considerations 5. Socket API Considerations
This section describes how the socket API defined in [RFC6458] is This section describes how the socket API defined in [RFC6458] is
extended to provide a way for the application to control the UDP extended to provide a way for the application to control the UDP
encapsulation. encapsulation.
Please note that this section is informational only. Please note that this section is informational only.
A socket API implementation based on [RFC6458] is extended by A socket API implementation based on [RFC6458] is extended by
skipping to change at page 8, line 41 skipping to change at page 8, line 44
This document does not require any actions from IANA. This document does not require any actions from IANA.
7. Security Considerations 7. Security Considerations
Encapsulating SCTP into UDP does not add any additional security Encapsulating SCTP into UDP does not add any additional security
considerations to the ones given in [RFC4960] and [RFC5061]. considerations to the ones given in [RFC4960] and [RFC5061].
8. Acknowledgments 8. Acknowledgments
The authors wish to thank Irene Ruengeler and Dan Wing for their The authors wish to thank Gorry Fairhurst, Irene Ruengeler, and Dan
invaluable comments. Wing for their invaluable comments.
9. References 9. References
9.1. Normative References 9.1. Normative References
[RFC0768] Postel, J., "User Datagram Protocol", STD 6, RFC 768, [RFC0768] Postel, J., "User Datagram Protocol", STD 6, RFC 768,
August 1980. August 1980.
[RFC0791] Postel, J., "Internet Protocol", STD 5, RFC 791, [RFC0791] Postel, J., "Internet Protocol", STD 5, RFC 791,
September 1981. September 1981.
skipping to change at page 10, line 5 skipping to change at page 10, line 5
9.2. Informative References 9.2. Informative References
[RFC6458] Stewart, R., Tuexen, M., Poon, K., Lei, P., and V. [RFC6458] Stewart, R., Tuexen, M., Poon, K., Lei, P., and V.
Yasevich, "Sockets API Extensions for the Stream Control Yasevich, "Sockets API Extensions for the Stream Control
Transmission Protocol (SCTP)", RFC 6458, December 2011. Transmission Protocol (SCTP)", RFC 6458, December 2011.
[I-D.ietf-behave-sctpnat] [I-D.ietf-behave-sctpnat]
Stewart, R., Tuexen, M., and I. Ruengeler, "Stream Control Stewart, R., Tuexen, M., and I. Ruengeler, "Stream Control
Transmission Protocol (SCTP) Network Address Translation", Transmission Protocol (SCTP) Network Address Translation",
draft-ietf-behave-sctpnat-06 (work in progress), draft-ietf-behave-sctpnat-07 (work in progress),
March 2012. October 2012.
[I-D.ietf-tsvwg-natsupp] [I-D.ietf-tsvwg-natsupp]
Stewart, R., Tuexen, M., and I. Ruengeler, "Stream Control Stewart, R., Tuexen, M., and I. Ruengeler, "Stream Control
Transmission Protocol (SCTP) Network Address Translation Transmission Protocol (SCTP) Network Address Translation
Support", draft-ietf-tsvwg-natsupp-02 (work in progress), for Endpoints", draft-ietf-tsvwg-natsupp-03 (work in
March 2012. progress), October 2012.
Authors' Addresses Authors' Addresses
Michael Tuexen Michael Tuexen
Muenster University of Applied Sciences Muenster University of Applied Sciences
Stegerwaldstrasse 39 Stegerwaldstrasse 39
48565 Steinfurt 48565 Steinfurt
DE DE
Email: tuexen@fh-muenster.de Email: tuexen@fh-muenster.de
 End of changes. 15 change blocks. 
31 lines changed or deleted 31 lines changed or added

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