- congestion이 발생하면 cwnd를 급격하게 증가
→ 네트워크 대역폭을 더 효과적으로 활용할 수 있어, 데이터 전송 속도가 빠르게 증가하고 네트워크 성능을 최적화할 수 있다.- congestion이 발생한 부분에서는 cwnd가 linear 보다 느리게 증가하여 최적의 높은 rate을오래 유지할 수 있게 된다.
→ 최적의 대역폭을 오래 활용할 수 있으므로 성능↑
- 혼잡이 발생 전의 이상적인 RTT을 구해놓고 매 데이터 전송마다 RTT를 측정하여 이상적 RTT와 비교한다.
- 현재 측정 RTT가 이상적인 RTT 값과 유사: congestion이 발생하지 않았으므로, cwnd를 linear하게 증가
- 현재 측정 RTT가 이상적인 RTT 값보다 현저하게 낮다면: congestion 발생을 간주하고 cwnd를 감소
- IP 헤더의 ECN 필드: IP 패킷 헤더의 ECN 필드가 '10' 또는 '01'로 설정되어 있으면 ECN을 지원한다.
네트워크 라우터가 혼잡을 감지하면 ECN 필드를 '11'로 수정하여 데이터 패킷에 이 정보를 표시한다.- 수신자: 수신자는 해당 패킷 헤더의 ECN 필드 값을 확인하고 혼잡이 발생하고 있다는 것을 인지한다.
그런 다음 TCP 헤더의 ECE 필드를 1로 설정하여 송신자에게 혼잡 발생을 송신자에게 알린다.- 송신자: 송신자는 수신자의 메시지를 받고 혼잡 제어 알고리즘을 통해 데이터 전송량을 감소시킨다.
만약 k개의 TCP 세션이 R의 대역폭을 공유하고 있을 때, 각각의 TCP 세션은 k/R 만큼의 대역폭을 공평하게 나누어 사용해야 한다.
- 검정색 점선: connection 1, 2가 대역폭 R을 동일하게 나누어 사용하는 경우 수렴양
- 파란 선: 대역폭 R
→ 파란 선보다 위에 존재하는 경우 congestion 발생
- 빨간 점: connection 1이 connection 2에 비해 더 많은 대역폭을 사용하고 있다.
- 해당 상태로 cwnd를 증가시키다가 파란 선을 넘게 되면 cwnd를 절반으로 감소시킨다.
- 해당 과정을 반복하면 검은 점선에 수렴하는, 대역폭을 동일하게 나누어 갖는 상태가 된다.
fairness index: 여러 TCP 연결 사이에서 대역폭을 얼마나 공평하게 분배하는지를 나타내는 지표
→ 만약 모든 long-lived TCP 연결이 bottleneck router에서 rate를 동일한 비율로 차지한다면, fairness index는 1에 가까워진다.
TCP Fairness
- UDP: UDP와 같이 혼잡제어를 제어하지 않는 프로토콜에서는 공평성이 지켜지기 어렵다.
- Multi-TCP: 하나의 프로세스가 여러 개의 TCP connection을 가지면, 해당 프로세스가 더 많은 대역폭을 할당받을 수 있다.
- 만약 100개의 프로세스가 1개의 연결을 가지고 다른 하나의 프로세스가 100개를 열면 100/200 절반을 하나의 프로세스가 할당 받게 된다. → 공평 하지 않음
HTTP/3: HTTP/1.1 및 HTTP/2와는 다르게 QUIC 프로토콜을 기반으로 동작한다.
- QUIC: UDP 위에서 동작하며, QUIC은 혼잡 제어 및 데이터 전송을 관리하며 한 번의 handshaking으로 강력한 보안 기능을 가진 연결을 설정할 수 있다.
무선 네트워크는 유선 네트워크에 비해서, 노이즈에 취약하다.
- 무선 네트워크에서 노이즈 등으로 인한 패킷 손실 및 손상인데 이를 혼잡이 발생했다고 오인할 수 있다.
→ 무선 네트워크의 특성에 맞는 TCP 변형이 필요하다.