01
解決方案
傳統的壅塞控制只以封包遺失作為訊號:路由器丟棄封包,傳送端便假設發生壅塞,並將其視窗減半。這種做法行得通,但會丟棄已經付出代價傳送的資料,並迫使重新傳輸。
ECN 在 IP 標頭中加入兩個位元,讓路由器只要標記封包,就能表示「壅塞正在形成」。接收端會將此標記複製到確認訊息中,傳送端則依據 ECN 旗標而非封包遺失來做出反應。
巧妙之處在於這個通知幾乎不花成本:一個已在傳輸途中的旗標,就能傳達與重傳相同的情報,因此網路得以進行壅塞控制,而不必付出多餘的傳輸。
02
達成了什麼
用一個位元,而不是丟棄封包,來表示「減速」
03
為何有效
標記避免了丟棄封包會觸發的重傳。
壅塞訊號沿著同一條路徑傳遞,並送達同一個傳送端。
此標記在佇列實際溢滿之前就已傳達訊息。
04
可套用之處
當傳遞訊號的唯一方式就是銷毀你正在發出訊號的那個東西時,不妨改為發明一個廉價的旁路通道;這個標記省下了傳送端原本必須重做的工作。
05
後續發展
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