target = "https://www.rfc-editor.org/rfc/rfc9000#section-9.6.2" # 9.6.2. Migration to a Preferred Address # # A client that migrates to a preferred address MUST validate the # address it chooses before migrating; see Section 21.5.3. # # A server might receive a packet addressed to its preferred IP address # at any time after it accepts a connection. If this packet contains a # PATH_CHALLENGE frame, the server sends a packet containing a # PATH_RESPONSE frame as per Section 8.2. The server MUST send non- # probing packets from its original address until it receives a non- # probing packet from the client at its preferred address and until the # server has validated the new path. # # The server MUST probe on the path toward the client from its # preferred address. This helps to guard against spurious migration # initiated by an attacker. # # Once the server has completed its path validation and has received a # non-probing packet with a new largest packet number on its preferred # address, the server begins sending non-probing packets to the client # exclusively from its preferred IP address. The server SHOULD drop # newer packets for this connection that are received on the old IP # address. The server MAY continue to process delayed packets that are # received on the old IP address. # # The addresses that a server provides in the preferred_address # transport parameter are only valid for the connection in which they # are provided. A client MUST NOT use these for other connections, # including connections that are resumed from the current connection. [[spec]] level = "MUST" quote = ''' A client that migrates to a preferred address MUST validate the address it chooses before migrating; see Section 21.5.3. ''' [[spec]] level = "MUST" quote = ''' The server MUST send non- probing packets from its original address until it receives a non- probing packet from the client at its preferred address and until the server has validated the new path. ''' [[spec]] level = "MUST" quote = ''' The server MUST probe on the path toward the client from its preferred address. ''' [[spec]] level = "SHOULD" quote = ''' The server SHOULD drop newer packets for this connection that are received on the old IP address. ''' [[spec]] level = "MAY" quote = ''' The server MAY continue to process delayed packets that are received on the old IP address. ''' [[spec]] level = "MUST" quote = ''' A client MUST NOT use these for other connections, including connections that are resumed from the current connection. '''