5.3. Serial Query (シリアルクエリ)
5.3 Serial Query (シリアルクエリ)
ルーターはSerial Queryを送信して, Serial Queryで指定されたシリアル番号以降に発生したすべてのアナウンスメントと撤回をキャッシュに要求します。
キャッシュがルーターが指定したシリアル番号以降の変更記録(空の場合もある)を持っている場合, キャッシュはこのクエリにCache Response PDU (セクション5.5)で応答し, その後にゼロ個以上のペイロードPDUとEnd of Data PDU (セクション5.8)が続きます。
Serial Queryに応答する際, キャッシュはルーターをキャッシュと同期させるために必要な最小限の変更セットを返さなければなりません。つまり, 特定のプレフィックスまたはルーターキーがルーターが指定したシリアル番号とキャッシュの現在のシリアル番号の間に複数の変更を経験した場合, キャッシュはこれらの変更を統合して, ルーターにこれらの変更の最も単純なビューを提示しなければなりません。通常, これは任意の特定のプレフィックスまたはルーターキーについて, データストリームには最大で1回の撤回が含まれ, その後最大で1回のアナウンスメントが続くことを意味し, すべての変更が相殺される場合, データストリームはそのプレフィックスまたはルーターキーについてまったく言及しません。
このアプローチの理論的根拠は, RPKI-Routerプロトコルの全体的な目的が作業をルーターからキャッシュにオフロードすることであるため, 変更セットを簡素化することはキャッシュの仕事であるべきであり, それによってルーターの作業を減らすということです。
キャッシュがルーターを更新するために必要なデータを持っていない場合(おそらくその記録がSerial Queryのシリアル番号まで遡らないため), Cache Reset PDU (セクション5.9)で応答します。
セッションIDは, シリアル番号が相称であること, つまりキャッシュセッションが変更されていないことを確認するために, ルーターが期待するインスタンスをキャッシュに伝えます。
0 8 16 24 31
.-------------------------------------------.
|| Protocol | PDU | |
|| Version | Type | Session ID |
|| 1 | 1 | |
+-------------------------------------------+
|| |
|| Length=12 |
|| |
+-------------------------------------------+
|| |
|| Serial Number |
|| |
`-------------------------------------------'