ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • What is Congestion Control ( 혼잡 제어 )?
    Machine Learning/Etc 2020. 1. 19. 19:22

    * 본 글은 Congestion Control 대해 정리한 글입니다.

    Congestion Control Challenge

    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}$에서 멀어지면 증가 속도를 가속화한다.

     

    댓글

Designed by Tistory.