7. Protocol Version Negotiation (Negoziazione della versione del protocollo)
7. Protocol Version Negotiation (Negoziazione della versione del protocollo)
Un router DEVE avviare ogni connessione di trasporto emettendo una Reset Query (interrogazione di ripristino) o una Serial Query (interrogazione di serie). Questa interrogazione dirà alla cache quale versione di questo protocollo implementa il router.
Se una cache che supporta la versione 1 riceve un'interrogazione da un router che specifica la versione 0, la cache DEVE retrocedere alla versione 0 del protocollo [RFC6810] o inviare un PDU Error Report (rapporto errori) versione 1 con codice di errore 4 ("Unsupported Protocol Version" - versione del protocollo non supportata) e terminare la connessione.
Se un router che supporta la versione 1 invia un'interrogazione a una cache che supporta solo la versione 0, accadrà una delle due cose seguenti:
-
La cache può terminare la connessione, forse con un PDU Error Report versione 0. In questo caso, il router PUÒ riprovare la connessione utilizzando la versione 0 del protocollo.
-
La cache può rispondere con una risposta versione 0. In questo caso, il router DEVE retrocedere alla versione 0 o terminare la connessione.
In tutte le combinazioni retrocesse sopra, le nuove funzionalità della versione 1 non saranno disponibili e tutti i PDU avranno 0 nei loro campi versione.
Se una delle parti riceve un PDU contenente una versione di protocollo non riconosciuta (né 0 né 1) durante questa negoziazione, DEVE retrocedere a una versione nota o terminare la connessione, con un PDU Error Report a meno che il PDU ricevuto non sia esso stesso un PDU Error Report.
Il router DEVE ignorare tutti i PDU Serial Notify che potrebbe ricevere dalla cache durante questo periodo di avvio iniziale, indipendentemente dal campo Protocol Version nel PDU Serial Notify.
Una volta che la cache e il router si sono accordati su una versione di protocollo tramite il processo di negoziazione sopra descritto, quella versione è stabile per la vita della sessione. Se una delle parti riceve un PDU per una versione di protocollo diversa una volta completata la negoziazione di cui sopra, quella parte DEVE interrompere la sessione; a meno che il PDU contenente la versione di protocollo inaspettata non fosse esso stesso un PDU Error Report, la parte che interrompe la sessione DOVREBBE inviare un rapporto errori con un codice di errore di 8 ("Unexpected Protocol Version" - versione del protocollo inaspettata).