傳統的壅塞控制只以封包遺失作為訊號:路由器丟棄封包,傳送端便假設發生壅塞,並將其視窗減半。這種做法行得通,但會丟棄已經付出代價傳送的資料,並迫使重新傳輸。

ECN 在 IP 標頭中加入兩個位元,讓路由器只要標記封包,就能表示「壅塞正在形成」。接收端會將此標記複製到確認訊息中,傳送端則依據 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