Yes |
MUST tolerate a wide range of Internet path conditions |
|
NA |
SHOULD use a full-featured transport (e.g., TCP) |
|
|
Yes |
SHOULD control rate of transmission |
|
NA |
SHOULD perform congestion control over all traffic |
|
|
|
For bulk transfers, |
|
NA |
SHOULD consider implementing TFRC |
|
NA |
else, SHOULD in other ways use bandwidth similar to TCP |
|
|
|
For non-bulk transfers, |
|
NA |
SHOULD measure RTT and transmit max. 1 datagram/RTT |
|
NA |
else, SHOULD send at most 1 datagram every 3 seconds |
|
NA |
SHOULD back-off retransmission timers following loss |
|
|
Yes |
SHOULD provide mechanisms to regulate the bursts of transmission |
|
|
NA |
MAY implement ECN; a specific set of application mechanisms are REQUIRED if ECN is used |
|
|
Yes |
For DiffServ, SHOULD NOT rely on implementation of PHBs |
|
|
Yes |
For QoS-enabled paths, MAY choose not to use CC |
|
|
Yes |
SHOULD NOT rely solely on QoS for their capacity |
|
NA |
non-CC controlled flows SHOULD implement a transport circuit breaker |
|
Yes |
MAY implement a circuit breaker for other applications |
|
|
|
For tunnels carrying IP traffic, |
|
NA |
SHOULD NOT perform congestion control |
|
NA |
MUST correctly process the IP ECN field |
|
|
|
For non-IP tunnels or rate not determined by traffic, |
|
NA |
SHOULD perform CC or use circuit breaker |
|
NA |
SHOULD restrict types of traffic transported by the tunnel |
|
|
Yes |
SHOULD NOT send datagrams that exceed the PMTU, i.e., |
|
Yes |
SHOULD discover PMTU or send datagrams < minimum PMTU |
|
NA |
Specific application mechanisms are REQUIRED if PLPMTUD is used |
|
|
Yes |
SHOULD handle datagram loss, duplication, reordering |
|
NA |
SHOULD be robust to delivery delays up to 2 minutes |
|
|
Yes |
SHOULD enable IPv4 UDP checksum |
|
Yes |
SHOULD enable IPv6 UDP checksum; specific application mechanisms are REQUIRED if a zero IPv6 UDP checksum is used |
|
|
NA |
SHOULD provide protection from off-path attacks |
|
|
else, MAY use UDP-Lite with suitable checksum coverage |
|
|
NA |
SHOULD NOT always send middlebox keep-alive messages |
|
NA |
MAY use keep-alives when needed (min. interval 15 sec) |
|
|
Yes |
Applications specified for use in limited use (or controlled environments) SHOULD identify equivalent mechanisms and describe their use case |
|
|
NA |
Bulk-multicast apps SHOULD implement congestion control |
|
|
NA |
Low volume multicast apps SHOULD implement congestion control |
|
|
NA |
Multicast apps SHOULD use a safe PMTU |
|
|
Yes |
SHOULD avoid using multiple ports |
|
Yes |
MUST check received IP source address |
|
|
NA |
SHOULD validate payload in ICMP messages |
|
|
Yes |
SHOULD use a randomized Source port or equivalent technique, and, for client/server applications, SHOULD send responses from source address matching request |
|
NA |
SHOULD use standard IETF security protocols when needed |
|