【イーシーエヌ】

ECN(明示的輻輳通知) とは?

公開:
💡 渋滞を「パケットを捨てず」に知らせる交通情報システム
📌 このページのポイント
ECN:パケットを捨てずに輻輳を通知する 送信側 輻輳ルーター 混雑を検知! ECEフラグをONに 書き換えて転送 受信側 ECT=1(対応済) ECE=1(混雑マーク) ACK+ECE通知 「混雑だよ」と通知 送信レート を下げる 従来: パケットロス発生 → タイムアウト後に輻輳を検知(遅延大) ECN: パケット損失なし → 早期通知で即座に速度調整(遅延小)
ECNが輻輳をパケット損失なしに通知し送信側が速度を調整するイメージ
ひよこ ひよこ
ネットワークが混雑したとき、パケットが捨てられて通信が遅くなるって聞いたんだけど、本当なの?
ペンギン先生 ペンギン先生
従来はそうだよ。送信側はパケットが届かなくなって初めて「混んでるんだな」って気づいて送信を落とす仕組みだったんだ。ECNはそれを改善した技術だよ。
ひよこ ひよこ
どうやってパケットを捨てずに混雑を伝えるの?
ペンギン先生 ペンギン先生
ルーターが混雑を検知したら、通過するパケットのヘッダーにあるECNフラグを書き換えるんだ。受信側はそのフラグを見て送信側に「混んでるよ」と通知し、送信側が速度を落とすんだよ。
ひよこ ひよこ
パケットを捨てないで済むと何がいいの?
ペンギン先生 ペンギン先生
パケットロスがないと再送が要らないから遅延が減るんだよ。特にTCPは再送タイムアウトで一気に速度が落ちるから、ECNで早めに輻輳を知らせることで通信品質がずっとなめらかになるんだ。
ひよこ ひよこ
ECNって両端が対応してないと使えないの?
ペンギン先生 ペンギン先生
そうだよ。送信側・受信側の両方とルーターがECNに対応してて、TCPの接続確立時に「ECN使う?」って交渉(ネゴシエーション)が成功した場合だけ使えるんだ。今は多くのOSが標準対応してるよ。
ひよこ ひよこ
データセンターで特に使われるって聞いたけど、なぜ?
ペンギン先生 ペンギン先生
データセンターネットワークは超高速・低遅延が求められるからね。特にRDMAという技術はパケットロスに弱いから、ECNで輻輳を早期通知して損失ゼロを保つのが重要なんだよ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「ECN」って出てきたら「パケットを捨てずに輻輳を伝える仕組み」と思えればだいたいOK!
📖 おまけ:英語の意味
「Explicit Congestion Notification」 = 明示的輻輳通知
💬 ネットワークの混雑(Congestion)を、パケットを落とすのではなく「明示的(Explicit)に通知(Notification)」することからこの名前がついたんだよ。
← 用語集にもどる