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

6.1 TCP

6.1 TCP

以下のセクションでは、TCP における ECN の使用提案を詳細に説明します。この提案は [Floyd94] で基本的に同じ形式で説明されています。私たちは、送信元 TCP がスロースタート (Slow-start)、高速再送 (Fast Retransmit)、および高速回復 (Fast Recovery) の標準的な輻輳制御アルゴリズム [RFC2581] を使用することを前提としています。

この提案は、TCP ヘッダーの予約フィールド (Reserved field) に 2 つの新しいフラグを規定しています。ECN 機能をネゴシエートするための TCP メカニズムは、TCP ヘッダーの ECN-Echo (ECE) フラグを使用します。TCP ヘッダー予約フィールドのビット 9 が ECN-Echo フラグとして指定されています。TCP ヘッダーの 6 ビット予約フィールドの位置は、RFC 793 [RFC793] の図 4 に示されています (完全性のために以下に複製)。ECN フィールドのこの仕様では、予約フィールドはビット 4-7 を使用する 4 ビットフィールドとして残されます。

TCP 受信者がいつ ECN-Echo フラグの設定を停止するかを判断できるようにするために、TCP ヘッダーに 2 番目の新しいフラグ、つまり CWR フラグを導入します。CWR フラグは、TCP ヘッダー予約フィールドのビット 8 に割り当てられています。

     0   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| | | U | A | P | R | S | F |
| Header Length | Reserved | R | C | S | S | Y | I |
| | | G | K | H | T | N | N |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+

図 3: TCP ヘッダーのバイト 13 および 14 の旧定義

     0   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| | | C | E | U | A | P | R | S | F |
| Header Length | Reserved | W | C | R | C | S | S | Y | I |
| | | R | E | G | K | H | T | N | N |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+

図 4: TCP ヘッダーのバイト 13 および 14 の新定義

したがって、ECN は IP ヘッダーの ECT および CE フラグ (図 1 に示すように) を使用してルーターと接続エンドポイント間でシグナリングを行い、TCP ヘッダーの ECN-Echo および CWR フラグ (図 4 に示すように) を使用して TCP エンドポイント間でシグナリングを行います。TCP 接続の場合、ECN ベースの輻輳応答の典型的なイベントシーケンスは次のとおりです。

  • 送信者は、送信されるパケットに ECT コードポイントを設定して、これらのパケットの送信エンティティが ECN をサポートしていることを示します。

  • ECN 対応ルーターは、差し迫った輻輳を検出し、破棄しようとしているパケットに ECT コードポイントが設定されていることを検出します。ルーターは、パケットを破棄する代わりに IP ヘッダーに CE コードポイントを設定し、パケットを転送することを選択します。

  • 受信者は CE コードポイントが設定されたパケットを受信し、送信者に送信する次の TCP ACK で ECN-Echo フラグを設定します。

  • 送信者は ECN-Echo が設定された TCP ACK を受信し、パケットが破棄された場合と同様に輻輳に応答します。

  • 送信者は、受信者に送信する次のパケットの TCP ヘッダーに CWR フラグを設定して、ECN-Echo フラグを受信し、それに応答したことを確認します。

TCP トランスポートエンティティによる ECN の使用のネゴシエーション、および ECN-Echo および CWR フラグの使用については、以下のセクションでより詳細に説明します。