target = "https://www.rfc-editor.org/rfc/rfc9000#section-14.1" # 14.1. Initial Datagram Size # # A client MUST expand the payload of all UDP datagrams carrying # Initial packets to at least the smallest allowed maximum datagram # size of 1200 bytes by adding PADDING frames to the Initial packet or # by coalescing the Initial packet; see Section 12.2. Initial packets # can even be coalesced with invalid packets, which a receiver will # discard. Similarly, a server MUST expand the payload of all UDP # datagrams carrying ack-eliciting Initial packets to at least the # smallest allowed maximum datagram size of 1200 bytes. # # Sending UDP datagrams of this size ensures that the network path # supports a reasonable Path Maximum Transmission Unit (PMTU), in both # directions. Additionally, a client that expands Initial packets # helps reduce the amplitude of amplification attacks caused by server # responses toward an unverified client address; see Section 8. # # Datagrams containing Initial packets MAY exceed 1200 bytes if the # sender believes that the network path and peer both support the size # that it chooses. # # A server MUST discard an Initial packet that is carried in a UDP # datagram with a payload that is smaller than the smallest allowed # maximum datagram size of 1200 bytes. A server MAY also immediately # close the connection by sending a CONNECTION_CLOSE frame with an # error code of PROTOCOL_VIOLATION; see Section 10.2.3. # # The server MUST also limit the number of bytes it sends before # validating the address of the client; see Section 8. [[spec]] level = "MUST" quote = ''' A client MUST expand the payload of all UDP datagrams carrying Initial packets to at least the smallest allowed maximum datagram size of 1200 bytes by adding PADDING frames to the Initial packet or by coalescing the Initial packet; see Section 12.2. ''' [[spec]] level = "MUST" quote = ''' Similarly, a server MUST expand the payload of all UDP datagrams carrying ack-eliciting Initial packets to at least the smallest allowed maximum datagram size of 1200 bytes. ''' [[spec]] level = "MAY" quote = ''' Datagrams containing Initial packets MAY exceed 1200 bytes if the sender believes that the network path and peer both support the size that it chooses. ''' [[spec]] level = "MUST" quote = ''' A server MUST discard an Initial packet that is carried in a UDP datagram with a payload that is smaller than the smallest allowed maximum datagram size of 1200 bytes. ''' [[spec]] level = "MAY" quote = ''' A server MAY also immediately close the connection by sending a CONNECTION_CLOSE frame with an error code of PROTOCOL_VIOLATION; see Section 10.2.3. ''' [[spec]] level = "MUST" quote = ''' The server MUST also limit the number of bytes it sends before validating the address of the client; see Section 8. '''