target = "https://www.rfc-editor.org/rfc/rfc9000#section-6.1" # 6.1. Sending Version Negotiation Packets # # If the version selected by the client is not acceptable to the # server, the server responds with a Version Negotiation packet; see # Section 17.2.1. This includes a list of versions that the server # will accept. An endpoint MUST NOT send a Version Negotiation packet # in response to receiving a Version Negotiation packet. # # This system allows a server to process packets with unsupported # versions without retaining state. Though either the Initial packet # or the Version Negotiation packet that is sent in response could be # lost, the client will send new packets until it successfully receives # a response or it abandons the connection attempt. # # A server MAY limit the number of Version Negotiation packets it # sends. For instance, a server that is able to recognize packets as # 0-RTT might choose not to send Version Negotiation packets in # response to 0-RTT packets with the expectation that it will # eventually receive an Initial packet. [[spec]] level = "MUST" quote = ''' An endpoint MUST NOT send a Version Negotiation packet in response to receiving a Version Negotiation packet. ''' [[spec]] level = "MAY" quote = ''' A server MAY limit the number of Version Negotiation packets it sends. '''