10. TCP の損失回復の改善 (Improving loss recovery for TCP)
10. TCP の損失回復の改善 (Improving loss recovery for TCP)
本節では、TCP 圧縮ヘッダーの損失回復を加速する 2 つのメカニズムを説明します。これらのメカニズムは、高いパケット損失率を持つ中速リンクにとって特に重要です。
10.1 解凍器からの明示的なヘッダー要求 (Explicit header request from decompressor)
解凍器が TCP 接続のコンテキストが同期していないことを検出した場合、圧縮器に完全ヘッダーを要求するヘッダー要求を送信できます。ヘッダー要求は、同期していない TCP 接続の CID リストを含む特別なパケットです。
解凍器が同期していないことを検出する一つの方法は、TCP パケットを受信したが TCP チェックサムが失敗した場合です。これは圧縮された TCP ヘッダーが不正に解凍されたことを示します。
圧縮器はヘッダー要求を受信した後、リストされた CID に対応する TCP 接続の完全ヘッダーまたは COMPRESSED_TCP_NODELTA パケットを送信すべきです。
10.2 CONTEXT_STATE パケット (CONTEXT_STATE packet)
CONTEXT_STATE パケットは解凍器から圧縮器に送信される特別なパケットです。同期が失われた TCP CID のリストを含みます。
CONTEXT_STATE パケットのフォーマットは以下の通りです。
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| CONTEXT_STATE marker | Number of CIDs |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| CID 1 | CID 2 | ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
CONTEXT_STATE マーカーは、このパケットを CONTEXT_STATE パケットとして識別する特別な 16 ビット値です。
Number of CIDs フィールドは、このパケットに含まれる CID の数を示します。
CID フィールドは 8 ビットの CID 値です。
圧縮器は CONTEXT_STATE パケットを受信した後、リストされた CID に対応する TCP 接続の完全ヘッダーまたは COMPRESSED_TCP_NODELTA パケットを送信すべきです。