Passa al contenuto principale

4. Ordinamento degli Indirizzi (Sorting Addresses)

Prima di tentare di connettersi a uno qualsiasi degli indirizzi di destinazione risolti, il client dovrebbe definire l'ordine in cui iniziare i tentativi. Una volta definito l'ordine, il client può utilizzare un algoritmo semplice per far competere ogni opzione dopo un breve ritardo (vedere Sezione 5). È importante che l'elenco ordinato includa tutti gli indirizzi di entrambe le famiglie che sono stati ricevuti fino a questo punto, poiché ciò consente al client di ottenere l'effetto di competizione di Happy Eyeballs per l'intero elenco, non solo per il primo indirizzo IPv4 e il primo indirizzo IPv6.

Innanzitutto, il client MUST ordinare gli indirizzi ricevuti fino a questo punto utilizzando la selezione dell'indirizzo di destinazione (Destination Address Selection) ([RFC6724], Sezione 6).

Se il client è con stato e ha una cronologia dei tempi di andata e ritorno (RTT, Round-Trip Time) previsti per le rotte di accesso a ciascun indirizzo, SHOULD aggiungere una regola di selezione dell'indirizzo di destinazione tra le regole 8 e 9 che preferisce gli indirizzi con RTT inferiori. Se il client tiene traccia degli indirizzi che ha utilizzato in passato, SHOULD aggiungere un'altra regola di selezione dell'indirizzo di destinazione tra la regola RTT e la regola 9, che preferisce gli indirizzi utilizzati a quelli non utilizzati. Questo aiuta i server che utilizzano l'indirizzo IP del client durante l'autenticazione, come nel caso di TCP Fast Open [RFC7413] e alcuni cookie del protocollo di trasferimento ipertestuale (Hypertext Transport Protocol, HTTP). Questi dati storici MUST NOT essere utilizzati su diverse interfacce di rete e SHOULD essere svuotati ogni volta che un dispositivo cambia la rete a cui è collegato.

Successivamente, il client SHOULD modificare l'elenco ordinato per alternare le famiglie di indirizzi. Qualunque sia la famiglia di indirizzi prima nell'elenco, dovrebbe essere seguita da un indirizzo dell'altra famiglia di indirizzi; cioè, se il primo indirizzo nell'elenco ordinato è IPv6, allora il primo indirizzo IPv4 dovrebbe essere spostato verso l'alto nell'elenco per essere il secondo nell'elenco. Un'implementazione MAY voler favorire maggiormente una famiglia di indirizzi consentendo di tentare più indirizzi di quella famiglia prima di provare l'altra famiglia. Il numero di indirizzi contigui della prima famiglia di indirizzi sarà denominato "First Address Family Count" (Conteggio della Prima Famiglia di Indirizzi) e può essere un valore configurabile. Questo viene eseguito per evitare di attendere attraverso un lungo elenco di indirizzi di una determinata famiglia di indirizzi se la connettività su quella famiglia di indirizzi è compromessa.

Si noti che la selezione dell'indirizzo descritta in questa sezione si applica solo agli indirizzi di destinazione; la selezione dell'indirizzo di origine (Source Address Selection) ([RFC6724], Sezione 5) viene eseguita una volta per indirizzo di destinazione ed è al di fuori dello scopo di questo documento.