KR101334990B1 - 전송 제어 프로토콜의 혼잡 윈도우 제어 방법 - Google Patents

전송 제어 프로토콜의 혼잡 윈도우 제어 방법 Download PDF

Info

Publication number
KR101334990B1
KR101334990B1 KR1020120022782A KR20120022782A KR101334990B1 KR 101334990 B1 KR101334990 B1 KR 101334990B1 KR 1020120022782 A KR1020120022782 A KR 1020120022782A KR 20120022782 A KR20120022782 A KR 20120022782A KR 101334990 B1 KR101334990 B1 KR 101334990B1
Authority
KR
South Korea
Prior art keywords
cwnd
congestion
congestion window
extra
proposed
Prior art date
Application number
KR1020120022782A
Other languages
English (en)
Other versions
KR20130116394A (ko
Inventor
장주욱
현도원
Original Assignee
서강대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 서강대학교산학협력단 filed Critical 서강대학교산학협력단
Priority to KR1020120022782A priority Critical patent/KR101334990B1/ko
Publication of KR20130116394A publication Critical patent/KR20130116394A/ko
Application granted granted Critical
Publication of KR101334990B1 publication Critical patent/KR101334990B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/27Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/11Identifying congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • H04L47/283Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

본 발명은 TCP에서의 혼잡 윈도우 제어 방법에 관한 것이다. 상기 혼잡 윈도우 제어 방법은 혼잡 회피 구간의 시작 시점부터 혼잡이 처음 발생되는 시점까지는 신규 혼잡 윈도우 값을 TCP Reno에 따른 혼잡 윈도우의 값 및 혼잡 윈도우 보정값을 합한 값으로 설정하여 지수적으로 증가시킨다. 지수적으로 증가된 신규 혼잡 윈도우 값이 최대 혼잡 윈도우 크기로 증가되면, 혼잡이 발생되기 전까지 신규 혼잡 윈도우 값을 최대 혼잡 윈도우 크기로 유지하고, 혼잡이 발생되면 신규 혼잡 윈도우 값을 TCP Reno에 따른 혼잡 윈도우 크기로 설정한다. 상기 혼잡 윈도우 제어 방법은 높은 대역폭과 높은 지연을 가지면서 버퍼의 크기가 최적 버퍼 크기보다 작은 링크에서 링크를 완전하게 100% 사용할 수 있도록 한다.

Description

전송 제어 프로토콜의 혼잡 윈도우 제어 방법{Congestion window control method in Transmission Control Protocol}
본 발명은 TCP (Transmission Control Protocol)의 혼잡 윈도우 제어 방법에 관한 것으로서, 더욱 구체적으로는 현재 인터넷에서 가장 많이 사용되고 있는 TCP Reno 프로토콜에서 높은 대역폭과 높은 지연을 가지면서 최적 버퍼 크기보다 작은 버퍼를 갖는 링크(under-buffered link) 에서 링크 활용을 높일 수 있는 혼잡 윈도우 제어 방법에 관한 것이다.
전송 제어 프로토콜(Transmission Control Protocol ; 이하 'TCP' 라 한다)은 재전송 매커니즘, 흐름 제어(flow control), 혼잡 제어(congestion control)를이용하여 패킷 전송을 보장해주는 신뢰성있는 전송 프로토롤이다. TCP는 전송할 데이터 스트림을 세그먼트들로 나누어 전송하며 효율적인 전송 및 흐름 제어를 해결하기 위하여 슬라이딩 윈도우(sliding window) 기법을 사용한다. TCP 슬라이딩 윈도우 프로토콜은 서로 TCP 헤더내의 윈도우 필드를 사용하여 상호간의 Window Advertisement를 통해 윈도우 크기를 조절할 수 있다. TCP는 전술한 바와 같이 가변 크기 윈도우를 사용함으로써 신뢰성있는 전송뿐만 아니라 흐름제어를 제공하게 된다.
TCP는 흐름 제어와 혼잡 제어의 메카니즘을 이용하여 end-to-end 간의 신뢰성있는 전송을 보장한다. 흐름 제어는 송신자(Sender)가 수신자(Receiver)로부터 advertised window 크기를 받은 후 그것보다는 적게 보냄으로써 네트워크상의 흐름을 조절하는 방법이고, 혼잡제어는 송신자가 네트워크 상황을 보고 스스로 흐름을 조절하는 방법이다.
이하, 현재 TCP 중 가장 많이 사용되고 있는 TCP reno 의 동작원리를 설명한다. TCP Reno는 혼잡이 없을 경우에는 현재 혼잡 윈도우를 매 전송 라운드마다 1씩 증가시키고, 혼잡이 발생하면 네트워크의 상황에 상관없이 무조건 현재 윈도우 크기를 절반으로 감소시킨다. 현재의 윈도우 크기를 W라 하고, 윈도우 임계치를 Wt라 하여, 각 단계별 혼잡 윈도우 크기 조절 방법을 구체적으로 설명한다.
(1) 정상적인 ACK 가 수신되는 경우, 슬로우 스타트(Slow Start) 단계에서는 W < Wt 인 구간으로서 W=W+1 로 정하며, 그 외의 구간은 혼잡 회피(Congestion Avoidance) 단계으로서 W=W+1/W 로 정해진다.
(2) 3번의 중복 ACK가 수신되는 경우, 해당 패킷을 재전송하고 재전송된 패킷이 ACK 될 때 Wt=W/2, W=Wt로 새로운 윈도우를 설정하여 혼잡 회피 단계를 갖는다.
(3) Timeout 으로 인해 패킷 손실을 감지했을 경우, Wt=W/1, W=1로 설정하여 다시 슬로우 스타트 알고리즘을 수행한다.
전술한 바와 같은 기존의 TCP Reno는 보수적인 혼잡 제어로 인해 높은 대역폭(bandwidth)과 높은 지연(round trip time)을 가지면서 최적 버퍼 크기보다 작은 버퍼를 가지는 링크에서는 아래의 2가지 문제점을 가지게 된다.
첫번째 문제점은, 높은 대역폭과 높은 지연을 갖는 링크에서 TCP Reno의 슬로우 스타트 단계의 윈도우 임계치(ssthresh)가 링크 사용을 완전하게 사용하는 값보다 작을 경우, 혼잡 윈도우를 매 전송 라운드마다 1씩 증가시키므로 링크 사용을 완전하게 100% 할 때까지 많은 시간이 소모되는 것이다.
두번째 문제점은 버퍼 크기에 관한 것으로서, 소수의 롱 리브 TCP(long-lived TCP) 절차들에 대해 링크를 완전하게 활용하기 위한 최적의 버퍼 크기(Bopt)는 rule-of-thumb에 의해 Bopt = C ×RTTmin (packets) 인 것으로 알려져 왔다. 여기서, 상기 C(packets/sec)는 링크 용량이고 상기 RTTmin(seconds)은 RTT(Round Trip Time)의 최소값이다. 그리고 큐는 드롭 테일(drop-tail)을 사용한다.
만일 현재의 버퍼 크기를 B라 할 때, 현재의 버퍼 크기(B)가 최적의 버퍼크기(Bopt)와 같거나 크다면(B=>Bopt), 링크는 완전하게 100% 사용(fully utilize)되고 이때의 링크를 오버 버퍼드 링크(over-buffered link)라 한다. 그리고 현재의 버퍼 크기(B)가 최적의 버퍼크기(Bopt)보다 작다면(B<Bopt), 링크 사용은 완전하지 않으며, 이때의 링크를 언더 버퍼드 링크(under-buffered link)라 한다.
상기 링크 용량 C가 커질수록 최적의 버퍼크기(Bopt)는 선형적으로 증가한다. 예를 들어, 링크 용량 C가 1Tbps이고, RTT 최소값(RTTmin)이 250ms인 경우에, 최적의 버퍼크기(Bopt)는 250Gbits가 된다. 이에 따라 고속의 SRAM을 가지고 링크 용량 증가에 따라 라우터의 버퍼를 구현하는 데에는 어려움이 있었다. 또한 큐잉 딜레이(queuing delay)가 길어지거나 변화가 커지면, 혼잡 제어(congestion control) 알고리즘이 불안해 질 수 있다.
도 1은 종래 기술에 따른 TCP에서의 혼잡 윈도우 크기의 변화와 링크 사용량, 버퍼 점유 상태의 ns-2 시뮬레이션 결과를 예시한 것이다. 도 1에서 링크 용량 C는 100Mbps, RTT는 80ms, 그리고 버퍼 크기는 250(packets)인 링크에서 링크를 완전(100%)하게 사용하기 위한 혼잡 윈도우의 크기는 1000(packets)이며, 또한 링크를 완전(100%)하게 사용할 때에 최적의 버퍼크기(Bopt)는 1000(packets)이다.
도 1의 (a)에 도시한 점선은 링크를 완전(100%)하게 사용하기 위한 혼잡 윈도우 크기로 이때 값은 1000(packets)이다. 도 1에서 전송 시작 후 윈도우 크기(cwnd)가 링크를 완전(100%)하게 사용할 때까 약 80초가 소요된다. 이것은 앞에서 언급만 문제점 중 첫 번째 문제점을 보여주고 있다.
도 1에서 약 105초에서 130초 사이를 보면, 약 105초에서 혼잡 윈도우 크기가 링크 용량과 버퍼 크기를 더한 크기, 즉 1250(packets)에 도달하게 되면 링크와 버퍼는 모두 꽉 차게 되어 패킷 손실이 발생하고 3-dup ACKs이 발생하게 되며, 이 3-dup ACKs에 의해 혼잡 윈도우 크기가 절반인 625(packets)로 줄어든다. 이때 절반으로 줄어든 혼잡 윈도우 크기가 링크를 완전(100%)하게 사용하기 위한 윈도우 크기인 1000(packets)보다 작기 때문에 링크 사용(link utilization)은 100% 아래로 내려가게 된다. 이후 매 전송 라운드 마다 혼잡 윈도우를 1개씩 증가시키기 때문에 약 130초까지 링크 사용은 100% 이하가 되고, 혼잡 윈도우 크기가 1000(packets)이 넘어가게 되면 다시 링크를 완전(100%)하게 사용하게 된다.
전술한 문제점들로 인하여, TCP Reno는 링크 사용(link utilization)을 완전하게 100% 활용하지 못한다. 이러한 TCP Reno의 성능을 개선하기 위하여 다양한 알고리즘이 제안되기도 했지만, 주로 높은 대역폭과 높은 지연에 대해서만 고려하여 TCP Reno보다 높은 윈도우 크기를 유지하기 때문에 링크를 더 많이 활용할 수는 있지만, 버퍼 크기에 대하여는 전혀 고려되지 않고 있다. 그리고, 이러한 알고리즘들은 기존의 TCP Reno보다 공격적인 혼잡 윈도우 크기로 인하여 기존의 TCP Reno 와의 공정성에 있어 불공정하게 되고, 이로 인해 경쟁하는 TCP Reno flow들을 잠식하게 된다. 따라서, 높은 대역폭과 높은 지연을 가지면서 최적 버퍼보다 작은 버퍼를 가지는 링크에서 TCP Reno 등과 같은 기존의 TCP는 링크를 완전하게 활용하지 못하기 때문에, 링크 사용을 높일 수 있는 새로운 혼잡 제어 기술의 개발이 절실하게 요구되고 있는 실정이다.
(1) 한국등록특허 제 10-952228 호 (2) 한국공개특허공보 제 10-2008-33134 호 (3) 한국공개특허공보 제 10-2009-47767 호
전술한 문제점을 해결하기 위하여, 본 발명은 높은 대역폭과 높은 지연을 가지면서 버퍼의 크기가 최적 버퍼 크기보다 작은 링크를 갖는 네크워크에서 링크 사용을 완전하게 할 수 있는 혼잡 윈도우 제어 방법을 제공하는 것을 목적으로 한다.
본 발명은 기존의 TCP Reno보다 공격적이지 않은 혼잡 윈도우 제어를 통해 TCP Reno와 같이 공존이 가능하면서 높은 링크 활용률과 높은 공정성을 가질 수 있는 혼잡 윈도우 제어 방법을 제공하는 것을 다른 목적으로 한다.
전술한 기술적 과제를 달성하기 위한 본 발명의 제1 특징은, 패킷 손실 후 혼잡 회피 구간에서의 혼잡 윈도우 크기 제어 방법에 관한 것으로서, (a) 링크를 완전히 사용하는 최대 혼잡윈도우 크기(Wfull)을 설정하는 단계; (b) 혼잡 윈도우 조절 함수 (cwnd(t+1))를 cwnd(t) + 1/cwnd(t) 로 설정하는 단계; (c) 최대 혼잡윈도우 크기(Wfull) 및 혼잡 윈도우 보정 함수(extra(t))를 이용하여 혼잡 윈도우 조절 함수(cwnd(t))를 보정하여 신규 혼잡 윈도우 조절 함수(cwndproposed(t))를 설정하는 단계;를 구비하여, 링크를 완전히 사용할 수 있도록 한다.
전술한 제1 특징에 따른 혼잡 윈도우 크기 제어 방법에 있어서, (a) 단계의 최대 혼잡윈도우 크기(Wfull)는 아래의 수학식
Figure 112012018150507-pat00001
에 의해 결정되며, 여기서 α는 사전 설정된 혼잡 문턱값으로서α>1 이며, β는 사전 설정된 감쇄 지수로서 β<1 이며, C(t)는 혼잡 판단 지수이다.
전술한 제1 특징에 따른 혼잡 윈도우 크기 제어 방법에 있어서, 상기 혼잡 윈도우 제어 방법은 혼잡 판단 지수 C(t)가 사전 설정된 혼잡 문턱값(α)보다 크면 혼잡이 발생했다고 판단하며, 혼잡 판단 지수는 아래의 수학식
Figure 112012018150507-pat00002
에 의해 결정되며, 여기서 t는 전송 라운드 수를 나타내며, RTTmin은 현재까지 측정된 RTT중 가장 작은 RTT를 나타내며, LSRTT(t)는 현재의 RTT(t)에 대한 log-likelihood 값이며, α는 사전 설정된 혼잡 문턱값으로서α>1 이다.
전술한 제1 특징에 따른 혼잡 윈도우 크기 제어 방법에 있어서, 상기 혼잡 윈도우 제어 방법은 버퍼의 크기가 최적 버퍼 크기보다 작은 링크를 갖는 TCP 통신 네트워크에 적용되는 것이 바람직하다.
전술한 제1 특징에 따른 혼잡 윈도우 크기 제어 방법에 있어서, 상기 신규 혼잡 윈도우 조절 함수는 아래의 수학식 cwndproposed(t) = cwnd(t) + extra(t) 에 따라 결정되는 것이 바람직하다.
전술한 제1 특징에 따른 혼잡 윈도우 크기 제어 방법에 있어서, 상기 혼잡 윈도우 보정 함수는 아래의 수학식
Figure 112012018150507-pat00003
에 따라 결정되며, 여기서 α는 사전 설정된 혼잡 문턱값으로서α>1 이며, C(t)는 혼잡 판단 지수이며, a는 사전 설정된 증가 설정값이다.
전술한 제1 특징에 따른 혼잡 윈도우 크기 제어 방법에 있어서, 상기 혼잡 윈도우 조절 함수는 TCP Reno에 따른 혼잡 윈도우 조절 함수이며,
상기 혼잡 윈도우 제어 방법은 혼잡 회피 구간의 시작 시점부터 혼잡이 처음 발생되는 시점까지는 신규 혼잡 윈도우 값을 TCP Reno에 따른 혼잡 윈도우의 값 및 혼잡 윈도우 보정값을 합한 값으로 설정되며, 신규 혼잡 윈도우 값이 최대 혼잡 윈도우 크기로 증가되면, 혼잡이 발생되기 전까지 신규 혼잡 윈도우 값을 최대 혼잡 윈도우 크기로 유지하고, 혼잡이 발생되면, 신규 혼잡 윈도우를 TCP Reno에 따른 혼잡 윈도우 크기로 설정하는 것이 바람직하다.
본 발명의 제2 특징에 따른 패킷 손실 후 혼잡 회피 구간에서의 혼잡 윈도우 크기 제어 방법은, (a) 패킷 손실이 발생하면 패킷 손실 플래그(packet_loss_flag)를 '1'로 설정하고 위상 체크 플래그(phase_checked_flag)는 '0'로 설정하는 단계; (b) TCP 수신자로부터 확인 신호를 수신하면, 혼잡 판단 지수(C(t)), 패킷 손실 플래그 및 위상 체크 플래그를 확인하는 단계; (c) C(t) ≤α && 위상 체크 플래그 == 0 이면, 패킷 손실 플래그 = 0 , extra(t+1) = extra(t) + a, cwnd(t+1) = cwnd(t) + 1/cwnd(t), cwndproposed(t+1) = cwnd(t+1) + extra(t+1), W full = cwndproposed(t+1)×β 로 설정하는 단계; (d) C(t) ≤α && 위상 체크 플래그 == 1 이면, cwndproposed(t)와 W full 을 비교하고, cwndproposed(t) = W full 이면 extra(t+1)= W full - cwnd(t), cwnd(t+1) = cwnd(t) + 1/cwnd(t)으로 설정하고, extra(t+1)<0 이면 extra(t+1) = 0 으로 재설정하고, cwndproposed(t+1) = cwnd(t+1) + extra(t+1)로 설정하는 단계; (e) C(t) ≤α && 위상 체크 플래그 == 1 이면, cwndproposed(t)와 W full 을 비교하고, cwndproposed(t) ≠ W full 이면 extra(t+1)= 0, cwnd(t+1) = cwnd(t) + 1/cwnd(t), cwndproposed(t+1) = cwnd(t+1) + extra(t+1)로 설정하는 단계; (f) C(t) >α && 위상 체크 플래그 == 0 && 패킷 손실 플래그 == 1이면, extra(t+1)= 0, cwnd(t+1) = cwnd(t) + 1/cwnd(t), cwndproposed(t+1) = cwnd(t+1) 로 설정하는 단계; (g) C(t) >α && 위상 체크 플래그 == 0 && 패킷 손실 플래그 == 0이면, 위상 체크 플래그 = 1, extra(t+1)= W full - cwnd(t), cwnd(t+1) = cwnd(t) + 1/cwnd(t)으로 설정하고, extra(t+1)<0 이면 extra(t+1) = 0 으로 재설정하고, cwndproposed(t+1) = cwnd(t+1) + extra(t+1)로 설정하는 단계; (h) C(t) >α && 위상 체크 플래그 == 1 이면, extra(t+1)= W full - cwnd(t), cwnd(t+1) = cwnd(t) + 1/cwnd(t)으로 설정하고, extra(t+1)<0 이면 extra(t+1) = 0 으로 재설정하고, cwndproposed(t+1) = cwnd(t+1) + extra(t+1)로 설정하는 단계; (i) cwndproposed(t+1) 에 따라 신규 혼잡 윈도우 값을 결정하고, 결정된 신규 혼잡 윈도우 값만큼 패킷을 전송하는 단계; 를 구비하고, extra(t)는 혼잡 윈도우 보정 함수이며, cwnd(t)는 혼잡 윈도우 조절 함수이며, cwndproposed(t)는 신규 혼잡 윈도우 조절 함수이며, W full 는 최대 혼잡 윈도우 크기이며, α는 사전 설정된 혼잡 문턱값이다.
전술한 제2 특징에 따른 혼잡 윈도우 제어 방법은 버퍼의 크기가 최적 버퍼 크기보다 작은 링크를 갖는 TCP 통신 네트워크에 적용되는 것이 바람직하다.
전술한 제2 특징에 따른 혼잡 윈도우 제어 방법에 있어서, 상기 혼잡 판단 지수 C(t)가 사전 설정된 혼잡 문턱값(α)보다 크면 혼잡이 발생했다고 판단하며, 혼잡 판단 지수는 아래의 수학식
Figure 112012018150507-pat00004
에 의해 결정되며, 여기서 t는 전송 라운드 수를 나타내며, RTTmin은 현재까지 측정된 RTT중 가장 작은 RTT를 나타내며, LSRTT(t)는 현재의 RTT(t)에 대한 log-likelihood 값이며, α는 사전 설정된 혼잡 문턱값으로서α>1 인 것이 바람직하다.
전술한 제2 특징에 따른 혼잡 윈도우 제어 방법에 있어서, 상기 최대 혼잡윈도우 크기(Wfull)는 아래의 수학식
Figure 112012018150507-pat00005
에 의해 결정되며, 여기서 α는 사전 설정된 혼잡 문턱값으로서α>1 이며, β는 사전 설정된 감쇄 지수로서 β<1 이며, C(t)는 혼잡 판단 지수이다.
전술한 제2 특징에 따른 혼잡 윈도우 제어 방법에 있어서, 혼잡 윈도우 조절 함수 cwnd(t)는 TCP Reno에 따른 혼잡 윈도우 조절 함수인 것이 바람직하다.
본 발명의 효과를 알아보기 위해 도 4와 같은 토폴로지에서 ns-2 시뮬레이션을 하였고 그 결과는 도 5, 도 6, 도 7에서 결과를 보인다. 시뮬레이션에서 α=1.02, β=0.95 그리고 a=0.005로 설정하였다.
도 5의 (a)는 본 발명의 바람직한 실시예에 따른 혼잡 윈도우 제어 방법이 적용된 TCP의 한 개 플로우에 대한 혼잡 윈도우 변화와 extra(t)에 의해 추가로 전송된 데이터의 윈도우 크기를 보여준다. 도 5의 (b)는 본 발명의 바람직한 실시예에 따른 혼잡 윈도우 제어 방법이 적용된 TCP의 링크 활용률(link utilization)을 보여주고 있다. 기존 TCP Reno의 경우 도 4와 같은 토폴로지에서 약 0.8의 링크 활용율을 가지는 반면, 본 발명의 바람직한 실시예에 따른 혼잡 윈도우 제어 방법이 적용된 TCP는 0.916의 링크 활용률을 보여 기존 TCP Reno보다 약 14.5% 향상되었다.
도 6에서 기존의 TCP Reno와 본 발명에 따른 혼잡 윈도우 제어 방법이 적용된 TCP가 동시에 흐를 경우의 성능을 평가하였다. 기존 TCP Reno가 0초부터 400초까지 전송을 하고, 본 발명이 적용된 TCP는 100초에서부터 500초까지 전송을 하였다. 링크 활용률은 0.836로 기존 TCP Reno 2개가 흐를 경우의 링크 활용률인 0.78보다 약 7.2%가 향상되었다. 또한 서로간의 공정성은 0.992로 높은 공정성을 가지므로 2개의 방식이 공존할 수 있음을 확인할 수 있다. 본 발명이 적용된 TCP가 기존 TCP Reno보다 약간의 공격적인 혼잡 윈도우 값을 가지기는 하나 TCP Reno의 전송을 방해하지 않는 수준이다.
여기서 공정성은 jain's fairness index를 사용하였고, 가장 공정할 경우 1의 값을 가지며, 공정성이 제일 나쁠 경우 1/n의 값을 가진다. n은 플로우의 수를 나타낸다.
도 7은 본 발명의 바람직한 실시예에 따른 혼잡 윈도우 제어 방법이 적용된 TCP가 2개 흐를 경우에 대한 성능을 나타내고 있다. 링크 활용률은 0.902로 기존 TCP Reno 2개가 흐를 경우의 링크 활용률인 0.78보다 약 15.64%가 향상되었다. 본 발명이 적용된 TCP간의 공정성은 0.999로 링크를 완전히 나누어 사용함을 확인할 수 있다.
도 8은 TCP Reno를 개선하기 위해 기존에 제안된 다양한 혼잡 윈도우 제어 알고리즘들과 TCP Reno간의 공정성과 링크 활용률을 보여주고 있다. 실험 환경은 도 5의 토폴로지를 이용하였고, 도 6과 도7과 같이 0초부터 400초까지는 TCP Reno, 100초부터 500초까지는 기존에 제안된 알고리즘들에 의해 전송하였다. 도 8에서 볼 수 있듯이, 기존에 제안된 혼잡 윈도우 제어 알고리즘들은 TCP Reno보다 공격적인 성향을 가지기 때문에 TCP Reno 플로우를 잠식한다. 따라서 TCP Reno와 공존함에 있어 높은 링크 활용률을 보여주고 있지만, 공정성이 매우 크게 훼손됨을 확인할 수 있다.
도 1은 종래의 기술에 따른 TCP 에서의 혼잡 윈도우 크기의 변화, 링크 사용량, 버퍼 점유 상태의 ns-2 시뮬레이션 결과를 도시한 것이다.
도 2는 본 발명의 바람직한 실시예에 따른 TCP의 혼잡 윈도우 제어 상태를 도시한 그래프이다.
도 3은 본 발명의 바람직한 실시예에 따른 TCP의 혼잡 윈도우 제어 방법을 순차적으로 설명하는 흐름도이다.
도 4는 종래의 기술에 따른 TCP Reno와 본 발명의 바람직한 실시예에 따른 혼잡 윈도우 제어 방법이 적용된 TCP간의 성능 평가를 위한 네트워크 토폴로지를 도시한 것이다.
도 5는 1개 플로우에 대하여 종래의 방식에 따른 TCP Reno와 본 발명의 바람직한 실시예에 따른 혼잡 윈도우 제어 방법이 적용된 TCP간의 혼잡 윈도우 및 링크 활용률의 변화를 도시한 그래프들이다.
도 6은 종래의 방식에 따른 TCP Reno와 본 발명의 바람직한 실시예에 따른 혼잡 윈도우 제어 방법이 적용된 TCP의 동시 전송일 경우 혼잡 윈도우 및 링크 활용률의 변화를 도시한 그래프들이다.
도 7은 본 발명의 바람직한 실시예에 따른 혼잡 윈도우 제어 방법이 적용된 TCP 가 2개 흐를 경우에 대한 혼잡 윈도우 및 링크 활용률의 변화를 도시한 그래프이다.
도 8은 TCP Reno를 개선하기 위하여 기존에 제안된 혼잡 윈도우 제어 알고리즘들과 TCP Reno간의 링크 활용률과 공정성을 도시한 도표이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 따른 TCP 혼잡 윈도우 제어 방법을 구체적으로 설명한다. TCP는 슬로우 스타트(slow-start) 구간과 혼잡 회피(congestion avoidance) 구간으로 구별되는데, 본 발명의 바람직한 실시예에 따른 TCP 혼잡 윈도우 제어 방법은 TCP의 혼잡 회피 구간에서의 혼잡 윈도우 크기 제어 방법에 관한 것이며, 슬로우 스타트 구간은 기존의 TCO Reno 동작 방식을 따른다.
도 2는 본 발명의 바람직한 실시예에 따른 TCP의 혼잡 윈도우 제어 방법에 의한 혼잡 윈도우 크기를 도시한 그래프이며, 도 3은 본 발명의 바람직한 실시예에 따른 TCP의 혼잡 윈도우 제어 방법을 순차적으로 설명하는 흐름도이다.
< 링크 용량을 완전히 사용하는 최대 혼잡 윈도우 크기(W full ) 계산 방법>
먼저, 본 발명의 바람직한 실시예에 따른 TCP의 혼잡 윈도우 제어 방법에 있어서, 링크 용량을 완전히 사용하는 최대 혼잡 윈도우 크기(W full )를 계산하여 설정한다. 이하, 링크 용량을 완전히 사용하는 최대 혼잡 윈도우 크기(W full )를 계산하는 방법을 구체적으로 설명한다.
RTT(Round Trip Time)가 증가하기 시작하면 링크가 완전히 차고 버퍼에 패킷이 쌓이게 된다. 따라서, RTT가 증가하여 혼잡 판단 지수(C(t))가 사전 설정된 혼잡 문턱값(α,α>1 )보다 증가하였을 경우 혼잡이 발생하였다고 판단하며, 이를 수학식 1로 표현한다.
Figure 112012018150507-pat00006
여기서, t는 전송 라운드 수를 나타내며, RTTmin은 현재까지 측정된 RTT중 가장 작은 RTT를 나타낸다. LSRTT(t)는 현재의 RTT(t)를 대신하여 사용하는 것으로서, RTT(t)에 대한 log-likelihood를 사용한 smoothed RTT 이다. C(t)를 계산함에 있어서 RTT(t)를 대신하여 LSRTT(t)를 사용하는 이유는, RTT(t)가 작은 변화에도 민감하게 반응하기 때문에 원하지 않는 결과를 얻을 수 있는 문제점이 있으나, LSRTT(t)는 RTT(t) 보다 작은 변화에도 둔감하면서 RTT(t)의 변화 추세를 잘 반영하기 때문이다.
링크 용량을 완전히 사용하는 최대 혼잡 윈도우 크기(W full )는 수학식 2로 구할 수 있다.
Figure 112012018150507-pat00007
처음 C(t) > α인 시점에서의 혼잡 윈도우 크기는 링크 용량을 초과하는 크기이므로, 링크 용량보다 작게 만들어 주기 위하여 사전 설정된 감쇄 지수(β, β<1 )만큼의 비율로 줄인 혼잡 윈도우 크기를 링크 용량을 완전히 채우는 혼잡 윈도우 크기(W full )로 결정한다.
< 혼잡 윈도우 제어 방법 >
본 발명의 바람직한 실시예에 따른 혼잡 윈도우 제어 방법은 기존의 TCP Reno의 혼잡 윈도우 조절 함수 cwnd(t)는 그대로 두고, 링크 용량이 남아 있어 추가적으로 데이터 전송이 가능할 경우 혼잡 윈도우 보정 함수 extra(t)를 사용하여 링크를 완전하게 100% 활용한다. 본 발명의 바람직한 실시예에 따라 새로이 적용된 신규 혼잡 윈도우 조절 함수 cwndproposed(t) 는 수학식 3으로 표현된다.
Figure 112012018150507-pat00008
본 발명에 따른 혼잡 윈도우 보정 함수 extra(t)는 수학식 4와 같이 설정된다.
Figure 112012018150507-pat00009
수학식 4의 첫번째 줄은 도 2에서의 t0~t1 구간을 나타내며, 두번째 줄은 도 2의 t1~t2를, 세번째 줄은 t2~t3 구간을 나타낸다. 이하, 각 구간별로 구체적으로 설명한다.
수학식 4의 첫번째 줄은 도 2에서의 t0~t1 구간을 나타낸다. 혼잡 윈도우 보정 함수 extra(t)는 C(t)≤α인 시점부터 C(t)가 α를 처음 넘을 때( C(t)>α)까지 확인 신호(ACK signal)를 수신할 때마다 extra(t)를 사전 설정된 증가 설정값(a) 만큼 증가시킨다. 상기 증가 설정값이 너무 클 경우 링크 용량을 완전히 채우는데 까지 걸리는 시간은 줄일 수 있지만, C(t)가 α를 처음 넘을 때( C(t)>α)의 혼잡 윈도우 크기가 링크 용량을 완전히 채우는 값보다 너무 커져 β를 곱하더라도 링크 용량을 넘는 혼잡 윈도우 값을 가지게 될 것이다. 반면에, 상기 증가 설정값이 너무 작을 경우 링크 용량을 완전히 채우는데 까지 걸리는 시간이 TCP Reno보다는 짧게 걸리기는 하지만 원하는 것보다는 오래 걸리게 되고, C(t)가 α를 처음 넘을 때( C(t)>α)의 혼잡 윈도우 크기가 링크 용량을 완전히 채우는 값과 거의 차이가 없기 때문에 β를 곱하여 줄여주게 되면 링크 용량을 완전히 채우는 값보다는 작은 값으로 W full 을 설정하게 될 것이다.
혼잡 윈도우 보정 함수 extra(t)를 증가 설정값 a 만큼 증가시키다가 C(t)가 α를 처음 넘게 되면( C(t)>α), 도 2의 t1 ~ t2 구간에서와 같이 새로운 혼잡 윈도우 cwndproposed(t)는 최대 혼잡 윈도우 크기 W full 로 유지한다. 이와 같이 새로운 혼잡 윈도우 cwndproposed(t)를 최대 혼잡 윈도우 크기 W full 로 유지하기 위하여, 수학식 4의 두번째 줄과 같이 혼잡 윈도우 보정 함수 extra(t)를 W full -cwnd(t) 로 업데이트하고, 만약, extra(t)가 0보다 작아지게 되면, extra(t)를 0으로 유지한다. 이 구간에서는 링크 용량이 비어 있으므로 추가적으로 데이터를 전송하더라도 RTT의 증가는 발생하지 않게 된다.
혼잡 윈도우 cwnd(t)가 최대 혼잡 윈도우 크기 W full 를 초과하게 되면, TCP Reno와 같은 동작을 하기 위하여 추가적으로 데이터 전송을 하지 않기 때문에 extra(t)는 0으로 만들어 준다.
전술한 본 발명의 바람직한 실시예에 따른 혼잡 윈도우 제어 방법을 다시 정리하면, 혼잡 회피 구간을 시작하면 먼저 C(t)≤α인 시점부터 C(t)가 α를 처음 넘을 때( C(t)>α)까지 확인 신호(ACK signal)를 수신할 때마다 extra(t)를 사전 설정된 증가 설정값(a) 만큼 증가시켜 신규 혼잡 윈도우값을 빠른 속도로 증가시킨다. 다음, C(t)가 α를 처음 넘게 되면( C(t)>α), TCP Reno에 따른 혼잡 윈도우값이 최대 혼잡 윈도우 크기 W full 와 같거나 작은 구간동안 신규 혼잡 윈도우값을 최대 혼잡 윈도우 크기 W full 로 유지한다. 다음, C(t)가 α를 넘고( C(t)>α), TCP Reno에 따른 혼잡 윈도우값이 최대 혼잡 윈도우 크기 W full 보다 큰 구간동안 신규 혼잡 윈도우값은 TCP Reno에 따른 혼잡 윈도우값을 그대로 사용하게 된다. 따라서, 본 발명에 따른 혼잡 윈도우 제어 방법은 TCP Reno을 사용하되 혼잡 회피 구간에서 링크 용량을 완전하게 사용할 수 있게 된다.
이하, 도 3을 참조하여 본 발명의 바람직한 실시예에 따른 혼잡 윈도우 제어 방법을 실제 구현하기 위한 구체적인 과정을 설명한다.
전술한 수학식 1 내지 4를 이용하여 혼잡 윈도우를 실제로 구현하는 경우, TCP 송신자(Sender)가 TCP 수신자(Receiver)로부터 확인 신호(ACK Signal)를 수신할 때까지 RTT 값의 갱신이 지연되는 문제로 인하여 원치 않는 동작이 발생하게 된다. 따라서, 본 실시예에서는 위상 체크 플래그(phase_checked_flag) 및 패킷 손실 플래그(packet_loss_flag)를 구비하여 혼잡 윈도우 제어 방법을 더욱 정확하게 구현하게 된다. 패킷 손실 플래그(packet_loss_flag)는 패킷 손실이 발생한 상태인지 여부를 나타내는 플래그로서, 패킷 손실이 발생하면 패킷 손실 플래그는 '1'로 설정되며 이에 따라 새로운 혼잡 회피 구간으로 동작되면서 패킷 손실 플래그는 '0'로 설정된다. 패킷 손실 플래그는 도 2의 t3에서 패킷 손실이 발생하게 되어 새로운 혼잡 회피 구간을 시작하게 될 때, 아주 짧은 시간동안 C(t)>α)로 인식하게 되어 수학식 4의 첫번째 줄을 수행하지 못하게 되기 때문에, 이를 방지하기 위한 플래그이다.
한편, 새로운 혼잡 회피 구간에서 RTT 가 증가하여 C(t) ≤α인 상태에서 처음 C(t)> α가 되는 시점의 혼잡 윈도우를 측정하고 이를 사전 설정된 감소지수 β 만큼 줄여 최대 혼잡 윈도우 크기 W full 을 계산하고, 혼잡 윈도우를 최대 혼잡 윈도우 크기 W full 로 줄이게 되면 RTT는 다시 감소를 하게 된다. 하지만, RTT가 감소하는데 소요되는 시간이 조금 늦기 때문에 이 동안에는 C(t)> α인 것 처럼 동작하게 되는데, 이를 방지하기 위하여 위상 체크 플래그(phase_checked_flag)를 사용한다. 위상 체크 플래그는 '0'로 초기화되며, C(t) ≤α인 상태에서 처음 C(t)> α가 되는 시점에 '1'로 설정된다. 이와 같이, 위상 체크 플래그를 사용하지 않으면, 도 2의 t1~t2 구간동안 일정한 혼잡 윈도우 값을 가지지 못하고 오실레이션(oscillation)이 발생하게 되고, 이와 같은 오실레이션은 기존의 TCP Reno와의 공정성에 있어 문제를 야기하게 된다.
따라서, 패킷 손실이 발생하면 패킷 손실 플래그는 1로 설정되고, 위상 체크 플래그는 0로 초기화된 상태에서, 본 발명에 따른 혼잡 윈도우 제어 방법이 적용된 혼잡 회피 구간으로 동작하게 된다.
이하, 전술한 위상 체크 플래그 및 패킷 손실 플래그를 이용하여 본 발명의 바람직한 실시예에 따른 혼잡 윈도우 제어 방법을 구현하는 과정을 설명한다. 도 3은 본 발명의 바람직한 실시예에 따른 혼잡 윈도우 제어 방법을 순차적으로 도시한 흐름도이다.
먼저, 패킷 손실이 발생하면, 위상 체크 플래그(phase_checked_flag) = 0, 패킷 손실 플래그(packet_loss_flag) = 1 로 설정한다.
새로운 혼잡 회피 구간을 시작하게 되어 TCP 송신자(Sender)는 TCP 수신자(Receiver)로부터 확인 신호(ACK Signal)를 수신하면, 혼잡 판단 지수 C(t), 위상 체크 플래그(phase_checked_flag) 및 패킷 손실 플래그(packet_loss_flag)를 확인한다(단계 310).
단계 310에서 만약 C(t) ≤α 이고 위상 체크 플래그가 0이면(단계 312), 이전 패킷 손실로 인해 '1'로 설정되었던 패킷 손실 플래그를 '0'으로 재설정하고( 패킷 손실 플래그 = 0 ), 혼잡 윈도우 보정 함수 extra(t+1)를 사전 설정된 증가 설정값(a) 만큼 증가시키고( extra(t+1) = extra(t) + a ), 혼잡 윈도우 조절 함수 cwnd(t+1)를 기존의 TCP Reno와 같이 1/cwnd(t)만큼 증가시키고( cwnd(t+1) = cwnd(t) + 1/cwnd(t) ), 업데이트된 extra(t+1) 및 cwnd(t+1)의 합으로 신규 혼잡 윈도우의 값 cwndproposed(t+1)을 설정한다( cwndproposed(t+1) = cwnd(t+1) + extra(t+1)). 그리고, 새로이 계산된 신규 혼잡 윈도우의 값 cwndproposed(t+1)에 감소지수 β를 곱하여 최대 혼잡 윈도우 크기 W full 를 계산한다( W full = cwndproposed(t+1)×β )(단계 314). 단계 314가 완료되면 새로이 설정된 신규 혼잡 윈도우 값 만큼의 패킷을 전송한다.
단계 310에서 만약 C(t) ≤α 이고 위상 체크 플래그가 0이 아니면(단계 312), 신규 혼잡 윈도우의 값과 최대 혼잡 윈도우 크기 W full 를 비교한다(단계 330). 신규 혼잡 윈도우의 값(cwndproposed(t))이 최대 혼잡 윈도우 크기 W full 와 같으면, 신규 혼잡 윈도우 cwndproposed(t+1)의 크기를 최대 혼잡 윈도우 크기 W full 로 설정한다. 이 구간에서 신규 혼잡 윈도우의 값을 최대 혼잡 윈도우 크기 W full 로 설정하기 위하여, extra(t+1)= W full -cwnd(t), cwnd(t+1) = cwnd(t) + 1/cwnd(t)를 계산한다(단계 332). extra(t+1)가 0보다 작으면(단계 334) extra(t+1)를 '0'으로 재설정하여 업데이트한 후(단계 336), 업데이트된 extra(t+1) 및 cwnd(t+1)의 합으로 신규 혼잡 윈도우의 값 cwndproposed(t+1)을 계산한다(단계 338). 단계 338이 완료되면 새로이 설정된 신규 혼잡 윈도우 값 만큼의 패킷을 전송한다.
단계 330에서, 신규 혼잡 윈도우의 값(cwndproposed(t))이 최대 혼잡 윈도우 크기 W full 와 같지 않으면, 신규 혼잡 윈도우의 값 cwndproposed(t+1)를 TCP Reno와 같이 혼잡 윈도우의 값으로 설정하기 위하여, cwnd(t+1) = cwnd(t) + 1/cwnd(t), extra(t+1)= 0 를 계산하고, extra(t+1) 및 cwnd(t+1)의 합으로 신규 혼잡 윈도우값 cwndproposed(t+1)을 계산한다(단계 340). 단계 340이 완료되면 새로이 설정된 신규 혼잡 윈도우 값 만큼의 패킷을 전송한다.
다시, TCP 송신자(Sender)는 TCP 수신자(Receiver)로부터 확인 신호(ACK Signal)를 수신하면, 혼잡 판단 지수 C(t)를 확인하고, 위상 체크 플래그 및 패킷 손실 플래그를 확인한다(단계 310). 만약 C(t) > α 이고 위상 체크 플래그가 0 이고 패킷 손실 플래그가 0이면, 위상 체크 플래그를 1로 설정하고(단계 324), 단계 332로 진행하여 신규 혼잡 윈도우 cwndproposed(t)의 크기를 최대 혼잡 윈도우 크기 W full 로 설정한다. 이 구간에서 신규 혼잡 윈도우의 값을 최대 혼잡 윈도우 크기 W full 로 설정하기 위하여, extra(t+1)= W full -cwnd(t), cwnd(t+1) = cwnd(t) + 1/cwnd(t)를 계산한다(단계 332). extra(t+1)가 0보다 작으면(단계 334) extra(t+1)를 '0'으로 재설정하여 업데이트한 후(단계 336), 업데이트된 extra(t+1) 및 cwnd(t+1)의 합으로 신규 혼잡 윈도우의 값 cwndproposed(t+1)을 계산한다(단계 338). 단계 338이 완료되면 새로이 설정된 신규 혼잡 윈도우 값 만큼의 패킷을 전송한다.
단계 310에 있어서, 만약 C(t) > α 이고 위상 체크 플래그가 1 이면, 단계 332로 진행하여 신규 혼잡 윈도우 cwndproposed(t)의 크기를 최대 혼잡 윈도우 크기 W full 로 설정한다. 이 구간에서 신규 혼잡 윈도우의 값을 최대 혼잡 윈도우 크기 W full 로 설정하기 위하여, extra(t+1)= W full -cwnd(t), cwnd(t+1) = cwnd(t) + 1/cwnd(t)를 계산한다(단계 332). extra(t+1)가 0보다 작으면(단계 334) extra(t+1)를 '0'으로 재설정하여 업데이트한 후(단계 336), 업데이트된 extra(t+1) 및 cwnd(t+1)의 합으로 신규 혼잡 윈도우의 값 cwndproposed(t+1)을 계산한다(단계 338). 단계 338이 완료되면 새로이 설정된 신규 혼잡 윈도우 값 만큼의 패킷을 전송한다.
단계 310에 있어서, 만약 C(t) > α 이고 위상 체크 플래그가 0 이고 패킷 손실 플래그가 1이면, cwnd(t+1) = cwnd(t) + 1/cwnd(t), extra(t+1)= 0를 계산하고, extra(t+1) 및 cwnd(t+1)의 합으로 신규 혼잡 윈도우값 cwndproposed(t+1)을 계산한다(단계 326). 단계 326이 완료되면 새로이 설정된 신규 혼잡 윈도우 값 만큼의 패킷을 전송한다.
본 발명에 따른 혼잡 윈도우 제어 방법은 전송 제어 프로토콜(TCP)의 흐름 제어 및 혼잡 제어 알고리즘에 널리 사용될 수 있다.

Claims (13)

  1. TCP를 이용하여 데이터를 송수신하는 TCP 통신 네트워크를 구성하는 장비들이 패킷 손실 후 혼잡 회피 구간에서의 혼잡 윈도우 제어 방법에 있어서,
    (a) 링크 용량을 완전히 사용하는 최대 혼잡윈도우 크기(Wfull)을 설정하는 단계;
    (b) 혼잡 윈도우 조절 함수 (cwnd(t+1))를 cwnd(t) + 1/cwnd(t) 로 설정하는 단계;
    (c) 최대 혼잡윈도우 크기(Wfull) 및 혼잡 윈도우 보정 함수(extra(t))를 이용하여 혼잡 윈도우 조절 함수(cwnd(t))를 보정하여 신규 혼잡 윈도우 조절 함수(cwndproposed(t))를 설정하는 단계;
    를 구비하여, 링크 용량을 완전히 사용할 수 있는 것을 특징으로 하며,
    상기 혼잡 윈도우 제어 방법은 버퍼의 크기가 최적 버퍼 크기보다 작은 링크 용량을 갖는 TCP 통신 네트워크에 적용되는 것을 특징으로 하는 혼잡 윈도우 제어 방법.
  2. 제1항에 있어서, (a) 단계의 최대 혼잡윈도우 크기(Wfull)는 아래의 수학식
    Figure 112012018150507-pat00010

    에 의해 결정되며, 여기서 α는 사전 설정된 혼잡 문턱값으로서α>1 이며, β는 사전 설정된 감쇄 지수로서 β<1 이며, C(t)는 혼잡 판단 지수인 것을 특징으로 하는 혼잡 윈도우 제어 방법.
  3. 제1항에 있어서, 상기 혼잡 윈도우 제어 방법은 혼잡 판단 지수 C(t)가 사전 설정된 혼잡 문턱값(α)보다 크면 혼잡이 발생했다고 판단하며, 혼잡 판단 지수는 아래의 수학식
    Figure 112012018150507-pat00011

    에 의해 결정되며, 여기서 t는 전송 라운드 수를 나타내며, RTTmin은 현재까지 측정된 RTT중 가장 작은 RTT를 나타내며, LSRTT(t)는 현재의 RTT(t)에 대한 log-likelihood 값이며, α는 사전 설정된 혼잡 문턱값으로서α>1 인 것을 특징으로 하는 혼잡 윈도우 제어 방법.
  4. 삭제
  5. 제1항에 있어서, 상기 신규 혼잡 윈도우 조절 함수는 아래의 수학식
    cwndproposed(t) = cwnd(t) + extra(t)
    에 따라 결정되는 것을 특징으로 하는 혼잡 윈도우 제어 방법.
  6. 제1항에 있어서, 상기 혼잡 윈도우 보정 함수는 아래의 수학식
    Figure 112012018150507-pat00012

    에 따라 결정되며, 여기서 α는 사전 설정된 혼잡 문턱값으로서α>1 이며, C(t)는 혼잡 판단 지수이며, a는 사전 설정된 증가 설정값인 것을 특징으로 하는 혼잡 윈도우 제어 방법.
  7. 제1항에 있어서, 상기 혼잡 윈도우 조절 함수는 TCP Reno에 따른 혼잡 윈도우 조절 함수이며,
    상기 혼잡 윈도우 제어 방법은 혼잡 회피 구간의 시작 시점부터 혼잡이 처음 발생되는 시점까지는 신규 혼잡 윈도우 값을 지수적으로 증가시키며, 지수적으로 증가된 신규 혼잡 윈도우 값이 최대 혼잡 윈도우 크기로 증가되면, 혼잡이 발생되기 전까지 신규 혼잡 윈도우 값을 최대 혼잡 윈도우 크기로 유지하고, 혼잡이 발생되면, 신규 혼잡 윈도우를 TCP Reno에 따른 혼잡 윈도우 크기로 설정하는 것을 특징으로 하는 혼잡 윈도우 제어 방법.
  8. 제7항에 있어서, 상기 혼잡 회피 구간의 시작 시점부터 혼잡이 처음 발생되는 시점까지는 신규 혼잡 윈도우 값을 지수적으로 증가시키기 위하여, 상기 신규 혼잡 윈도우 값을 TCP Reno에 따른 혼잡 윈도우의 값 및 혼잡 윈도우 보정값을 합한 값으로 설정하는 것을 특징으로 하는 혼잡 윈도우 제어 방법.
  9. 패킷 손실 후 혼잡 회피 구간에서의 혼잡 윈도우 크기 제어 방법에 있어서,
    (a) 패킷 손실이 발생하면 패킷 손실 플래그(packet_loss_flag)를 '1'로 설정하고 위상 체크 플래그(phase_checked_flag)는 '0'로 설정하는 단계;
    (b) TCP 수신자로부터 확인 신호를 수신하면, 혼잡 판단 지수(C(t)), 패킷 손실 플래그 및 위상 체크 플래그를 확인하는 단계;
    (c) C(t) ≤α && 위상 체크 플래그 == 0 이면, 패킷 손실 플래그 = 0 , extra(t+1) = extra(t) + a, cwnd(t+1) = cwnd(t) + 1/cwnd(t), cwndproposed(t+1) = cwnd(t+1) + extra(t+1), W full = cwndproposed(t+1)×β 로 설정하는 단계;
    (d) C(t) ≤α && 위상 체크 플래그 == 1 이면, cwndproposed(t)와 W full 을 비교하고, cwndproposed(t) = W full 이면 extra(t+1)= W full - cwnd(t), cwnd(t+1) = cwnd(t) + 1/cwnd(t)으로 설정하고, extra(t+1)<0 이면 extra(t+1) = 0 으로 재설정하고, cwndproposed(t+1) = cwnd(t+1) + extra(t+1)로 설정하는 단계;
    (e) C(t) ≤α && 위상 체크 플래그 == 1 이면, cwndproposed(t)와 W full 을 비교하고, cwndproposed(t) ≠ W full 이면 extra(t+1)= 0, cwnd(t+1) = cwnd(t) + 1/cwnd(t), cwndproposed(t+1) = cwnd(t+1) + extra(t+1)로 설정하는 단계;
    (f) C(t) >α && 위상 체크 플래그 == 0 && 패킷 손실 플래그 == 1이면, extra(t+1)= 0, cwnd(t+1) = cwnd(t) + 1/cwnd(t), cwndproposed(t+1) = cwnd(t+1) 로 설정하는 단계;
    (g) C(t) >α && 위상 체크 플래그 == 0 && 패킷 손실 플래그 == 0이면, 위상 체크 플래그 = 1, extra(t+1)= W full - cwnd(t), cwnd(t+1) = cwnd(t) + 1/cwnd(t)으로 설정하고, extra(t+1)<0 이면 extra(t+1) = 0 으로 재설정하고, cwndproposed(t+1) = cwnd(t+1) + extra(t+1)로 설정하는 단계;
    (h) C(t) >α && 위상 체크 플래그 == 1 이면, extra(t+1)= W full - cwnd(t), cwnd(t+1) = cwnd(t) + 1/cwnd(t)으로 설정하고, extra(t+1)<0 이면 extra(t+1) = 0 으로 재설정하고, cwndproposed(t+1) = cwnd(t+1) + extra(t+1)로 설정하는 단계;
    (i) cwndproposed(t+1) 에 따라 신규 혼잡 윈도우 값을 결정하고, 결정된 신규 혼잡 윈도우 값만큼 패킷을 전송하는 단계;
    를 구비하고, extra(t)는 혼잡 윈도우 보정 함수이며, cwnd(t)는 혼잡 윈도우 조절 함수이며, cwndproposed(t)는 신규 혼잡 윈도우 조절 함수이며, W full 는 최대 혼잡 윈도우 크기이며, α는 사전 설정된 혼잡 문턱값인 것을 특징으로 하는 혼잡 윈도우 제어 방법.
  10. 제9항에 있어서, 상기 혼잡 윈도우 제어 방법은 버퍼의 크기가 최적 버퍼 크기보다 작은 링크 용량을 갖는 TCP 통신 네트워크에 적용되는 것을 특징으로 하는 혼잡 윈도우 제어 방법.
  11. 제9항에 있어서, 상기 혼잡 판단 지수 C(t)가 사전 설정된 혼잡 문턱값(α)보다 크면 혼잡이 발생했다고 판단하며, 혼잡 판단 지수는 아래의 수학식
    Figure 112012018150507-pat00013

    에 의해 결정되며, 여기서 t는 전송 라운드 수를 나타내며, RTTmin은 현재까지 측정된 RTT중 가장 작은 RTT를 나타내며, LSRTT(t)는 현재의 RTT(t)에 대한 log-likelihood 값이며, α는 사전 설정된 혼잡 문턱값으로서α>1 인 것을 특징으로 하는 혼잡 윈도우 제어 방법.
  12. 제9항에 있어서, 상기 최대 혼잡윈도우 크기(Wfull)는 아래의 수학식
    Figure 112012018150507-pat00014

    에 의해 결정되며, 여기서 α는 사전 설정된 혼잡 문턱값으로서α>1 이며, β는 사전 설정된 감쇄 지수로서 β<1 이며, C(t)는 혼잡 판단 지수인 것을 특징으로 하는 혼잡 윈도우 제어 방법.
  13. 제9항에 있어서, 혼잡 윈도우 조절 함수 cwnd(t)는 TCP Reno에 따른 혼잡 윈도우 조절 함수인 것을 특징으로 하는 혼잡 윈도우 제어 방법.


KR1020120022782A 2012-03-06 2012-03-06 전송 제어 프로토콜의 혼잡 윈도우 제어 방법 KR101334990B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120022782A KR101334990B1 (ko) 2012-03-06 2012-03-06 전송 제어 프로토콜의 혼잡 윈도우 제어 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120022782A KR101334990B1 (ko) 2012-03-06 2012-03-06 전송 제어 프로토콜의 혼잡 윈도우 제어 방법

Publications (2)

Publication Number Publication Date
KR20130116394A KR20130116394A (ko) 2013-10-24
KR101334990B1 true KR101334990B1 (ko) 2013-12-02

Family

ID=49635460

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120022782A KR101334990B1 (ko) 2012-03-06 2012-03-06 전송 제어 프로토콜의 혼잡 윈도우 제어 방법

Country Status (1)

Country Link
KR (1) KR101334990B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102210738B1 (ko) * 2015-01-28 2021-02-02 삼성전자주식회사 통신 시스템에서 혼잡 제어 방법 및 장치

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100672979B1 (ko) * 2005-08-04 2007-01-22 부산대학교 산학협력단 혼잡 제어 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100672979B1 (ko) * 2005-08-04 2007-01-22 부산대학교 산학협력단 혼잡 제어 방법

Also Published As

Publication number Publication date
KR20130116394A (ko) 2013-10-24

Similar Documents

Publication Publication Date Title
US11876714B2 (en) Method and apparatus for network congestion control based on transmission rate gradients
JP4778453B2 (ja) 通信端末、輻輳制御方法および輻輳制御プログラム
JP4708978B2 (ja) 高スループットを実現する通信システム、通信端末、セッション中継装置、及び通信プロトコル
JP2006014329A (ja) 通信端末
CN105024940A (zh) 基于链路自适应的异构网络tcp拥塞控制方法
CN107800638B (zh) 一种拥塞控制方法及装置
CN106789702B (zh) 控制tcp传输性能的方法及装置
KR100912178B1 (ko) 무선 환경에서의 혼잡제어방법 및 기록매체
US7613976B2 (en) Method for setting the retransmission timeout period in a packet switched communication network
CN101969432B (zh) 基于随机回退的tcp拥塞窗口的控制方法
JP4435817B2 (ja) 通信端末、通信制御方法および通信制御プログラム
KR101334990B1 (ko) 전송 제어 프로토콜의 혼잡 윈도우 제어 방법
Dunaytsev et al. TCP NewReno throughput in the presence of correlated losses: The slow-but-steady variant
Nabeshima et al. Improving the convergence time highspeed TCP
Park et al. Distinguishing the cause of TCP retransmission timeouts in multi-hop wireless networks
Psaras et al. CA-RTO: a contention-adaptive retransmission timeout
Ullah et al. Improving network efficiency by selecting and modifying congestion control constraints
KR100915996B1 (ko) 대역폭변화에 따른 적응형 전송 제어 프로토콜을 이용한데이터 패킷 전송 방법 및 그를 위한 송신측 단말장치
WO2013011638A1 (ja) 通信装置およびその通信制御方法
Cerdà et al. Study of the TCP Unfairness in a Wireless Environment
CN115665058A (zh) 一种数据发送速度控制方法、装置、设备及介质
Hannemann TCP Maintenance and Minor Extensions (TCPM) WG A. Zimmermann Internet-Draft NetApp, Inc. Obsoletes: 4653 (if approved) L. Schulte Intended status: Experimental Aalto University Expires: May 14, 2015 C. Wolff
Hannemann TCP Maintenance and Minor Extensions A. Zimmermann (TCPM) WG NetApp, Inc. Internet-Draft L. Schulte Intended status: Experimental Aalto University Expires: May 22, 2014 C. Wolff
Shihada et al. Performance evaluation of TCP Vegas over optical burst switched networks
Hannemann TCP Maintenance and Minor Extensions A. Zimmermann (TCPM) WG NetApp, Inc. Internet-Draft L. Schulte Intended status: Experimental Aalto University Expires: November 21, 2014 C. Wolff

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160805

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20171023

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20181226

Year of fee payment: 6