질문
CWND 오류제어란 무엇이며, 어떻게 동작하는지 설명하라.
답변
1. CWND 개념
CWND(Congestion Window)는 TCP(Transmission Control Protocol)에서 혼잡 제어(Congestion Control)를 위해 사용하는 송신 측의 윈도우 크기입니다. 네트워크가 혼잡하지 않은 상황에서는 CWND를 점진적으로 증가시켜 네트워크 대역폭을 최대한 활용하고, 혼잡 상황에서는 CWND를 감소시켜 혼잡을 완화합니다.
CWND는 수신 측의 윈도우 크기(Receive Window, RWND)와 함께 데이터 송신량을 결정합니다.
- 실제 전송 가능한 데이터 크기 = min(CWND, RWND)
2. CWND 오류제어 원리
CWND는 네트워크의 상태에 따라 동적으로 변화하며, 주요 원리는 다음과 같습니다.
2.1. 주요 알고리즘
(1) Slow Start
- CWND를 작은 값(일반적으로 1 MSS, Maximum Segment Size)에서 시작합니다.
- ACK(Acknowledgment) 패킷이 올 때마다 CWND를 지수적으로 증가시킵니다.
- 네트워크의 혼잡 정도를 초기에 파악하기 위해 사용됩니다.
- Threshold(SSTHRESH) 값에 도달하면 Congestion Avoidance(혼잡 회피)로 전환됩니다.
(2) Congestion Avoidance
- CWND를 선형적으로 증가시켜 네트워크의 안정성을 유지합니다.
- 네트워크의 혼잡을 방지하기 위해 점진적으로 대역폭을 활용합니다.
(3) Fast Retransmit and Fast Recovery
- 패킷 손실이 발생했다고 판단되면 CWND를 감소시킵니다.
- 중복 ACK가 3번 이상 수신되면 패킷 손실로 간주하고 빠르게 재전송(Fast Retransmit)합니다.
- 이후 CWND를 Threshold(SSTHRESH)의 절반으로 감소한 후, 혼잡 회피 상태로 복구(Fast Recovery)합니다.
3. CWND 작동 순서
1. 초기 단계(Slow Start):
- CWND는 1 MSS로 시작하여 지수적으로 증가합니다.
- SSTHRESH에 도달하면 혼잡 회피로 전환됩니다.
-
혼잡 회피 단계(Congestion Avoidance):
- CWND를 매 RTT(Round Trip Time)당 MSS 단위로 증가시킵니다.
-
패킷 손실 감지 및 Fast Recovery:
- 중복 ACK가 수신되거나 타임아웃이 발생하면 SSTHRESH를 새로 계산(SSTHRESH = CWND/2)하고 CWND를 감소시킵니다.
- 이후 네트워크 상태를 점검하며 CWND를 다시 점진적으로 증가시킵니다.
4. CWND의 장단점
4.1. 장점
- 네트워크 혼잡 상황에 동적으로 대응 가능.
- 대역폭을 효율적으로 사용하여 전송 속도 최적화.
- 손실 상황에서도 빠르게 복구 가능(Fast Recovery).
4.2. 단점
- RTT가 긴 환경에서는 성능 저하 가능.
- 네트워크의 급격한 변화(버스트 트래픽)에 대해 즉각적 대응 어려움.
- 초기에 CWND 크기를 너무 작게 설정하면 대역폭을 충분히 활용하지 못할 수 있음.
5. CWND와 다른 오류제어 기법 비교
구분 | CWND | RWND | 타이머 기반 오류제어 |
---|
주요 목적 | 네트워크 혼잡 제어 | 수신 측의 버퍼 관리 | 전송 실패 탐지 및 재전송 |
제어 주체 | 송신 측 | 수신 측 | 송신 측 |
주요 변수 | CWND 크기 | 버퍼 상태 및 가용 크기 | 타임아웃 시간 |
장점 | 혼잡 상황에 동적 적응 | 데이터 손실 방지 | 손실 복구 정확성 높음 |
단점 | 초기 전송 속도 낮음 | 혼잡 상태 반영 불가 | 네트워크 부하 증가 가능 |
6. CWND 개선 방향 및 전망
1. Bottleneck 문제 해결:
- RTT 기반 조정에 더해 네트워크 대역폭 정보를 활용한 CWND 조정 알고리즘 개선.
-
신기술 통합:
- BBR(Bottleneck Bandwidth and Round-trip propagation time)과 같은 최신 혼잡 제어 알고리즘 도입.
-
적응형 알고리즘 개발:
- 네트워크의 동적 특성에 맞는 머신러닝 기반 혼잡 제어 기법 연구.
-
대용량 네트워크 대응:
- 5G 및 Beyond 5G 환경에 적합한 CWND 설계 필요.
이상으로 CWND의 개념과 동작 원리, 그리고 관련 개선 사항에 대해 설명하였습니다.