7. Protocol Version Negotiation (Protokollversionsverhandlung)
7. Protocol Version Negotiation (Protokollversionsverhandlung)
Ein Router MUSS jede Transportverbindung durch Ausgabe entweder einer Reset Query (Rücksetzabfrage) oder einer Serial Query (Serienabfrage) starten. Diese Abfrage teilt dem Cache mit, welche Version dieses Protokolls der Router implementiert.
Wenn ein Cache, der Version 1 unterstützt, eine Abfrage von einem Router erhält, der Version 0 angibt, MUSS der Cache auf Protokollversion 0 [RFC6810] herabstufen oder ein Error Report PDU (Fehlerberichts-PDU) Version 1 mit Fehlercode 4 ("Unsupported Protocol Version" - nicht unterstützte Protokollversion) senden und die Verbindung beenden.
Wenn ein Router, der Version 1 unterstützt, eine Abfrage an einen Cache sendet, der nur Version 0 unterstützt, wird eines von zwei Dingen passieren:
-
Der Cache kann die Verbindung beenden, möglicherweise mit einem Error Report PDU Version 0. In diesem Fall KANN der Router die Verbindung unter Verwendung der Protokollversion 0 wiederholen.
-
Der Cache kann mit einer Antwort Version 0 antworten. In diesem Fall MUSS der Router entweder auf Version 0 herabstufen oder die Verbindung beenden.
Bei allen oben genannten herabgestuften Kombinationen sind die neuen Funktionen von Version 1 nicht verfügbar, und alle PDUs haben 0 in ihren Versionsfeldern.
Wenn eine der Parteien während dieser Verhandlung ein PDU mit einer nicht erkannten Protokollversion (weder 0 noch 1) erhält, MUSS sie entweder auf eine bekannte Version herabstufen oder die Verbindung beenden, mit einem Error Report PDU, es sei denn, das empfangene PDU ist selbst ein Error Report PDU.
Der Router MUSS alle Serial Notify PDUs ignorieren, die er während dieser anfänglichen Startphase vom Cache empfangen könnte, unabhängig vom Protocol Version-Feld im Serial Notify PDU.
Sobald Cache und Router sich über den oben beschriebenen Verhandlungsprozess auf eine Protokollversion geeinigt haben, ist diese Version für die Lebensdauer der Sitzung stabil. Wenn eine der Parteien nach Abschluss der oben genannten Verhandlung ein PDU für eine andere Protokollversion erhält, MUSS diese Partei die Sitzung beenden; sofern das PDU mit der unerwarteten Protokollversion nicht selbst ein Error Report PDU war, SOLLTE die Partei, die die Sitzung beendet, einen Fehlerbericht mit einem Fehlercode von 8 ("Unexpected Protocol Version" - unerwartete Protokollversion) senden.