Explicit Congestion Notification
Congestion된 라우터를 아예 피해서 가는 network-assisted 방식이다.
- Ip datagram에 비트를 하나 보내서 라우터의 congestion 상태를 확인한다.
- 이러면 Receiver가 ECE를 헤더에 담아서 돌려주고, Sender는 Congestion을 알게된다.
이 과정에는 두 sender, receiver의 IP가 들어간다
Fairness
TCP는 공정해야한다. 이전 글의 시나리오 3처럼 한 TCP가 라우터 하나를 독점하는걸 막아야한다.
예시
우선 붉은 점 지점에서는 R보다 커넥션들이 더 낮기때문에 아무런 이상이 발생하지 않는다. 두 커넥션 모두 정상적으로 주고받을 수 있다.
이 상태에서 두 커넥션 모두 정상적으로 RTT를 보내고 받았기에 Additive Increase에 따라 45도 각도로 증가하게 된다.
그러면 결국 R보다 커져서 loss가 발생할 것이고, 다시 Multiple Decrease할 것이다.
이 과정을 지속적으로 반복, 이상적인 상황에서는 공평한 TCP가 보장될것이다.
모든 network가 fair해야하는가?
UDP에서
- 멀티미디어 앱은 TCP를 쓰지 않는다.
- 주로 UDP를 사용하고 이는 congestion control을 써서 속도를 떨어트리는 일을 하지 않는다.
- congestion Control을 강요하지 않는다
TCP에서
- 클라이언트와 웹서버간의 다중평행연결
- 예시
- link of rate R with 9 existing connections:
new app asks for 1 TCP, gets rate R/10
new app asks for 11 TCPs, gets R/2