-
What is Congestion Control ( 혼잡 제어 )?Machine Learning/ETC 2020. 1. 19. 19:22
* 본 글은 Congestion Control 대해 정리한 글입니다.
1 What is congestion? ( 혼잡이란? )
- network가 다룰 수 없을 만큼 많은 데이터가, 너무 빠르게, 너무 많은 host로 부터 보내진다.
- 이로 인해 패킷 손실, 긴 delay가 발생하게 됨.
2 How to discover available bandwidth? ( 어떻게 가용 가능한 대역폭을 알아낼 수 있을까? )
- Available bandwidth ?
- 다른 traffic이 없을 경우 : bottleneck link ( 병목 링크 ) 의 capacity ( 용랑 )
- 다른 traffic이 존재할 경우 : bottleneck link capacity의 공정한 비율
- Available bandwidth는 시간이 지남에 따라 변할 수 있다. ( 네트워크 환경이 변함에 따라 )
- end to end approach를 통해 가용가능한 대역폭을 알아낼 수 있을까?
- end to end appraoch = 네트워크로부터 명시적인 피드백 없이, 종단 시스템이 관측하는 loss, delay로 부터 cognestion을 알아냄.
3 TCP Congestion Control
$LastPktSent - LastPktAcked \le cwnd$
- Window based control
- cwnd를 조절함으로써 전송률을 제한한다.
- TCP slow start = initial rate ( 초기 cwnd 크기 ) 는 작지만 exonential 하게 증가한다.
- AIMD ( Additive Increase Multiplicative Decrease )
- Sender는 손실이 발생할 때까지 전송률을 증가시킨다.
- 손실을 발견하고 대응하기
- timeout을 통해 발견하기 = cwnd를 1로 하고, threshold까지는 slow start를 진행하고 이후 linear 하게 증가한다. TCP Taeho
- 3 duplicate ACKs를 통해 발견하기 = cwnd를 절반으로 줄이고 linear하게 증가한다. TCP Reno
- Slow start 모드에서 Congestion Avoidance ( CA ) 모드로 전환하기
- cwnd가 ssthresh에 도달하면 CA 모드로 전환한다.
- 손실이 발생하면, ssthresh는 손실이 발생했을 당시의 cwnd의 1/2 크기로 설정한다.
- TCP fainess ( 공정성 )
- fairness goal : $K$개의 TCP session이 대역폭 $R$인 같은 병목 링크를 공유할 때, 각 연결의 전송률은 $R/K$가 되야 한다
- 왜 TCP 는 공정할까?
- AIMD는 두 경쟁하는 TCP에 대해 TCP 공정성을 달성하도록 수렴함이 보장된다.
- TCP CUBIC
- Link의 성능이 향상되고 가용 가능한 대역폭이 늘어나면서, TCP Reno가 이를 효율적으로 활용하지 못하게 됨.
- cwnd를 절반으로 줄이고 Additive 하게 증가하는 방식은, cwnd를 복구하는데 지나치게 많은 시간이 소요된다는 문제가 있다.
- 패킷 손실 발생시, cwnd를 $W_{max}$에 저장하고 multiplicative하게 cwnd를 줄임. 그 후 cwnd를 매우 빠르게 증가시키고, cwnd가 $W_{max}$에 가까워지면 증가 속도를 줄이고, cwnd가 $W_{max}$에서 멀어지면 증가 속도를 가속화한다.
'Machine Learning > ETC' 카테고리의 다른 글
CrossEntropyLoss vs BCELoss (2) 2022.11.01 [Review] Pcc vivace: Online-learning congestion control. (0) 2020.01.08 [Review] Congestion-Control Throwdown (0) 2020.01.07 [Review] PCC: Re-architecting Congestion Control for Consistent High Performance. (0) 2020.01.05 [Review] A Deep Reinforcement Learning Perspective on Internet Congestion Control - 인터넷 혼잡제어 관점에서의 강화학습 (0) 2019.12.30