メインコンテンツまでスキップ

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 パケットを送信すべきです。