Recent TCP

    최근 사용되는 TCP


    TCP Congestion Control 따라서 종류를 달리하고 있다. 특히 현대의 다양한 네트워크 (유무선/장단거리 등으로 구분되는) 환경에 알맞은 최적의 TCP 적용하는 것은 네트워크 분야의 주요한 관심사이기도 하다. TCP Vegas, New Reno 거쳐서 다음 TCP들은 OS 의존적으로 발전하기도 하였다.

    TCP New Reno 가장 널리 채택되었던 알고리즘인데, SACK(Selective ACK) 지원이 후에도 당연시되었고, 모두 Reno New Reno 확장형으로 간주할 있다. 다른 TCP 계열은 현재 경쟁 중이고 지속적으로 평가될 것이다.

    1)      TCP BIC

    리눅스 커널 2.6.8 이상에서 사용되어 2.6.18까지 사용된 TCP BIC 이른바 long fat network (LFN)에서 가장 효율적으로 작동할 있는 알고리즘을 가지고 있다. latency speed 높은 네트워크에 최적화 되어있다. TCP BIC 자체적으로 독특한 congestion window algorithm 가지고 있다. 알고리즘은 간단한 로그형태의 concave 함수이다.

    이름에서 유추할 있듯이 BIC Binary Increase하는 컨트롤을 특징으로 한다. 패킷 로스가 발생했을 윈도우를 자체적인 multiplicative factor(beta)만큼 줄인다. Binary Search 이용해 윈도우 크기는 maximum minimum 중간으로 이동한다 중간 지점으로 번의 RTT 늘리기 어려운 경우, 일정한 상수 만큼 이동하는데 이걸 Smax라고 한다. Smax 만큼 증가하는 구간을 Additive Increase라고 한다.


    Figure 1. TCP BIC algorithm


    패킷 로스가 일어나지 않으면 일정한 Wmin 작아지고, 결국 일정하게 정해놓은 Smin보다 작아지게 되면 Binary Search 구간이 시작된다. 패킷 로스가 감지되면 Slow Start 구간이 시작된다.

    , Saturation Point Window size 차이가 많이 난다면 aggressive하게 CWND 증가시키고, 가까워지면 slowly하게 증가시킨다.

     

     

    2)     TCP CUBIC

    TCP BIC에는 장점과 단점이 있다. 먼저 장점으로는 high speed 요구하는 네트워크 상에서 scalability 용이하며 또한 Binary Search 구간에서의 CWND 적은 변동으로 인한 stability 있다. 반면에 단점도 존재한다. 주요한 단점은 다음과 같다.

     

    l  Growth function 작은 RTT에서도 과하게 aggressive 있다.

    l  Low speed network에서도 aggressive 정책이 적용될 있다.

    l  이로 인한 RTT-fairness 위배가 있다.

    l  다양한 구간(Additive Increase / Binary Search / Max probing, Smax, Smin 등등)으로 인해 복잡도가 증가한다.

    따라서 위와 같은 단점들을 보안하는 새로운 window growth function 필요하게 되었다. function 단순하며 TCP-friendly하고 RTT-fair 성격을 요구 받게 되었다. Window growth function Cubic function으로 단순하게 바뀌었다. Cubic function 수학적으로 3차함수꼴을 이르는 말이다. 다음과 같은 모양을 가지고 있다.



    삼차함수를 바탕으로 Window function 만들었고, 다음과 같다.

    C CUBIC parameter, t 마지막 window reduction(packet loss) 부터 지난 시간, K 다음과 같이 정해져 Wmax 영향을 받는 수이다. t 도입함으로써 function RTT-fair하게 되었는데 이것은 많은 다른 RTT들이 같은 할당된 시간을 갖기 때문이다.



    Figure 2. TCP CUBIC algorithm

     

    3)     TCP Westwood plus

    기존의 TCP Reno protocol stack에서 송신자 측에서 변형을 시도한 것이 TCP Westwood plus 이다. TCP Westwood plus wireline wireless 네트워크에서 적용될 있고, 성능을 최적화하는 방향으로 고안되었다. TCP congestion window slow start threshold 정하기 위해서 end-to-end bandwidth 추정 법을 사용한다.

    주파수 bandwidth low-pass filtering 이용해서 추정하는데, 돌아오는 ACK 패킷의 비율을 측정한다. 이상적인 시나리오는, TCP Westwood+ bandwidth time congestion 반영되어 계산된 threshold congestion window 동적으로 적용하는 것이다. 따라서 wireless 연결에서의 fairness throughput 효과적으로 증대할 있다.

     

    4)     Compound TCP

    Compound TCP TCP BIC이나 CUBIC과는 달리 Windows 적용된 TCP타입이다. 기본적인 목표는 송신자의 congestion window TCP 연결 상황에 따라서 aggressive하게 바꾸는 것으로 한다. 연결상황은 large bandwidth-delay까지 고려하며 fairness 최대한 침범하지 않는 선에서 한다. Windows 적용되었으나 Linux 운영체제에도 적용 가능하다.

    Compound TCP CWND 유지한다. 하나는 일반적인 AIMD, 다른 하나는 delay-based window이다. 실제로 적용되는 sliding window 사이즈는 window 크기의 합이다. AIMD TCP Reno 방식과 동일하게 증가한다. Delay-based window 다음과 같은 방식으로 window size 조정한다.

     

    l  Delay 작다면 network utilization 최대화를 위해 window 급격히 증가시킨다.

    l  Queueing 있는 환경이면 점차적으로 감소시켜 AIMD window 증가량을 상쇄한다.

    이와 같은 알고리즘을 통해 window 크기의 합을 거의 일정하게 유지한다. 특히 queueing 감지되면 persistent congestion 문제(TCP Vegas에서 발견되는) 피하기 위해 delay-based window 사이즈는 추정되었던 Queue 크기로 줄어든다. , 기존의 TCP와는 다르게 Compound TCP delay 반응하여 window size 조정하며 TCP Reno fairness 크게 보강하였다.


    Posted by EE June_Kim