解決策
従来の輻輳制御は損失のみを信号として用いる。ルーターがパケットを破棄すると、送信側は輻輳が起きたと判断してウィンドウを半減させる。これは機能するが、すでにコストを払ったデータを捨てることになり、再送信を強いられる。
ECNはIPヘッダーに2ビットを追加し、ルーターがパケットをマーキングするだけで「輻輳が形成されつつある」と伝えられるようにする。受信側はそのマークを確認応答にコピーし、送信側は損失ではなくECNフラグに反応する。
要点は、この通知がほぼ無コストであることだ。すでに送信中のフラグが再送信と同じ情報を届けるため、ネットワークは冗長な転送なしに輻輳制御を実現できる。
達成したこと
「速度を落とせ」と伝えるために、パケットを破棄するのではなくビットを使う
うまくいった理由
マーキングは、破棄なら引き起こすはずの再送信を避ける。
輻輳信号は同じ経路をたどり、同じ送信側に届く。
マークは、キューが実際にオーバーフローする前に通知を伝える。
応用できること
信号を届ける唯一の方法が、信号の対象そのものを破壊することであるなら、代わりに安価なサイドチャネルを発明せよ。マークは、さもなければ送信側がやり直す作業を節約する。
その後
標準化トラックのプロトコルとして位置づけられたECNは、TCP/IPスタックやデータセンターのトランスポートで広くサポートされており、損失ではなく帯域内マークを用いるというその発想は、後のデータセンターネットワークにおける輻輳通知の基盤となっている。
出典をたどる
出典
- RFC 3168: The Addition of Explicit Congestion Notification (ECN) to IP IETF · rfc-editor.org
- RFC 2884: Performance Evaluation of Explicit Congestion Notification (ECN) in IP Networks IETF · rfc-editor.org