해결책
고전적인 혼잡 제어는 손실을 유일한 신호로 사용한다. 라우터가 패킷을 버리면 송신자는 혼잡이 발생했다고 가정하고 윈도를 절반으로 줄인다. 이 방식은 동작하지만, 이미 비용을 치른 데이터를 버리고 재전송을 강제한다.
ECN은 IP 헤더에 두 비트를 추가하여 라우터가 패킷을 표시하기만 하면 "혼잡이 형성되고 있다"고 말할 수 있게 한다. 수신자는 그 표시를 확인 응답에 복사하고, 송신자는 손실이 아니라 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