Applications can readily be updated to work in dual stack mode, because the transport layer is very little affected by IPv6. Therefore, IPv6 supports all the common transport protocols:
-
UDP. There is no separate specification for UDP over IPv6; RFC768 still applies! However, the UDP checksum is mandatory for IPv6 (since the IPv6 header itself has no checksum), except as allowed by RFC6936.
-
UDP-lite [RFC3828] also supports IPv6. There is interesting background on UDP and UDP-lite in RFC8304.
-
TCP. IPv6 support is fully integrated in the latest TCP standard [STD7].
-
RTP fully supports IPv6 [RFC3550].
-
QUIC fully supports IPv6 [RFC9000].
-
SCTP fully supports IPv6 [RFC4960].
-
MPTCP fully supports IPv6 [RFC8684].
Also, the secure transports TLS, DTLS and SSH all work normally with IPv6. So does SIP (Session Initiation Protocol [RFC3261]), which does not require NAT traversal support (STUN) in the case of IPv6.
All quality of service and congestion control considerations should be approximately the same for IPv4 and IPv6. This is why RFC2474 defined differentiated services identically for both versions of IP, and the same applies to ECN (Explicit Congestion Notification [RFC3168]).