従来の輻輳制御は損失のみを信号として用いる。ルーターがパケットを破棄すると、送信側は輻輳が起きたと判断してウィンドウを半減させる。これは機能するが、すでにコストを払ったデータを捨てることになり、再送信を強いられる。

ECNはIPヘッダーに2ビットを追加し、ルーターがパケットをマーキングするだけで「輻輳が形成されつつある」と伝えられるようにする。受信側はそのマークを確認応答にコピーし、送信側は損失ではなくECNフラグに反応する。

要点は、この通知がほぼ無コストであることだ。すでに送信中のフラグが再送信と同じ情報を届けるため、ネットワークは冗長な転送なしに輻輳制御を実現できる。

「速度を落とせ」と伝えるために、パケットを破棄するのではなくビットを使う

マーキングは、破棄なら引き起こすはずの再送信を避ける。

輻輳信号は同じ経路をたどり、同じ送信側に届く。

マークは、キューが実際にオーバーフローする前に通知を伝える。

信号を届ける唯一の方法が、信号の対象そのものを破壊することであるなら、代わりに安価なサイドチャネルを発明せよ。マークは、さもなければ送信側がやり直す作業を節約する。

標準化トラックのプロトコルとして位置づけられたECNは、TCP/IPスタックやデータセンターのトランスポートで広くサポートされており、損失ではなく帯域内マークを用いるというその発想は、後のデータセンターネットワークにおける輻輳通知の基盤となっている。

出典をたどる

出典

  1. RFC 3168: The Addition of Explicit Congestion Notification (ECN) to IP IETF · rfc-editor.org
  2. RFC 2884: Performance Evaluation of Explicit Congestion Notification (ECN) in IP Networks IETF · rfc-editor.org