KR102363534B1 - 통신 시스템에서 tcp 기반의 전송 제어 방법 및 장치 - Google Patents

통신 시스템에서 tcp 기반의 전송 제어 방법 및 장치 Download PDF

Info

Publication number
KR102363534B1
KR102363534B1 KR1020150080840A KR20150080840A KR102363534B1 KR 102363534 B1 KR102363534 B1 KR 102363534B1 KR 1020150080840 A KR1020150080840 A KR 1020150080840A KR 20150080840 A KR20150080840 A KR 20150080840A KR 102363534 B1 KR102363534 B1 KR 102363534B1
Authority
KR
South Korea
Prior art keywords
rtt
cwnd
factor
time slot
tcp
Prior art date
Application number
KR1020150080840A
Other languages
English (en)
Other versions
KR20160144257A (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 KR1020150080840A priority Critical patent/KR102363534B1/ko
Priority to US15/735,012 priority patent/US10374958B2/en
Priority to PCT/KR2016/006078 priority patent/WO2016200154A1/ko
Publication of KR20160144257A publication Critical patent/KR20160144257A/ko
Application granted granted Critical
Publication of KR102363534B1 publication Critical patent/KR102363534B1/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/19Flow control; Congestion control at layers above the network layer
    • H04L47/193Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
    • 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/22Traffic shaping
    • H04L47/225Determination of shaping rate, e.g. using a moving window
    • 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/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]
    • 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/37Slow start

Landscapes

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

Abstract

본 발명은 통신 시스템에서 전송률을 높이면서 지연 시간을 낮출 수 있는 TCP 기반의 전송 제어 방법 및 장치에 대한 것으로서, 본 발명의 실시 예에 따른 통신 시스템에서 TCP 기반의 전송 제어 방법은, 정해진 시간 마다 추정된 최대 혼잡 윈도우(CWND)를 이용하여 TCP 제어를 위한 목표 최대 전송률을 결정하는 과정과, 상기 정해진 시간 마다 추정된 최소 왕복 지연 시간(RTT)을 이용하여 상기 TCP 제어를 위한 목표 최소 RTT를 결정하는 과정과, 상기 목표 최대 전송률과 상기 목표 최소 RTT를 이용하여 RTT 시간 슬롯에서 혼잡 윈도우(CWND)와 수신 윈도우(RWND) 중 적어도 하나를 업데이트하는 과정을 포함한다.

Description

통신 시스템에서 TCP 기반의 전송 제어 방법 및 장치{METHOD AND APPARATUS FOR CONTROL TRANSMISSION BASE ON TRANSMISION CONTROL PROTOCOL IN A COMMUNICATION SYSTEM}
본 발명은 통신 시스템에서 TCP(Transmission Control Protocol) 기반의 전송 제어 방법 및 장치에 대한 것으로서, 전송률과 지연 시간의 양 자를 고려할 수 있는 TCP 기반의 전송 제어 방법 및 장치 에 대한 것이다.
통신 시스템에서 안정적인 전송 제어를 위한 TCP 알고리즘은 네트워크 구조를 계층적으로 구분한 OSI(Open Systems Interconnection Reference Model) 계층 분류 또는 TCP/IP(Internet Protocol)의 계층 분류에서 전송 계층(Transport layer)에서 동작한다. TCP에서 상기 전송 계층의 역할은 크게 흐름 제어(flow control)과 혼합 제어(congestion control)로 구분된다.
상기 흐름 제어는 인터넷을 포함하는 다중 홉(hop)으로 구성된 네트워크에서, 송신기에서 네트워크로 전송하는 데이터의 양을 수신기의 상태 및 성능에 맞게 조절하기 위한 것이다. 상기 혼합 제어는 네트워크에서 링크들의 상태 및 성능에 맞게 네트워크 부하로 인한 패킷 손실을 줄이기 위한 것이다. 상기 혼잡 제어는 또한 네트워크를 공용으로 사용하는 다수의 네트워크 플로우들 간에 공평성(fairness)을 확보하는 역할을 수행한다.
기존의 TCP 알고리즘들은 예를 들어, TCP Tahoe, TCP Reno, TCP New Reno, TCP Vegas, highspeed TCP, FAST TCP, TCP Westwood, TCP FIT, Compound TCP, TCP BIC, TCP CUBIC 등이 있다. TCP 알고리즘을 설계 함에 있어 고려하는 최우선 목표는 주어진 네트워크의 가용 대역폭(available bandwidth)를 단시간 내에 탐색(probing)하여, 가용 대역폭의 활용율(utilization)을 최대로 높이는 것(즉, 전송률을 최대로 높이는 것)이다.
이를 위해 대다수의 TCP 알고리즘들은 전송 제어를 시작함과 동시에 공격적으로 네트워크로 전송하는 패킷 양을 늘려 최대 가용 대역폭(즉 최대 전송률)을 짧은 시간에 찾아내는 동작을 한다. 이와 같이 패킷 전송의 공격성(aggressiveness)을 높이면, 빠른 시간에 가용 대역폭 탐색이 가능하지만, 다른 TCP 플로우들과의 공평성을 해치는 요인으로 작용하게 되므로, 예컨대, 안드로이드 기반 단말의 운영 체제를 포함한 리눅스(Linux) 등에서 default TCP 로 사용되는 TCP CUBIC은 높은 공격성을 가지되, 낮은 공격성으로 임시로 변환하는 부분을 두어, 빠른 가용 대역폭 탐색과 동시에 다른 TCP 플로우들과의 공평성도 확보할 수 있도록 설계 되었다.
기존 TCP 알고리즘들의 가용 대역폭 탐색에서 주목할 점은, 네트워크의 가용 대역폭을 직접적으로 관리하고 기록하지 않는다는 점이다. 네트워크의 가용 대역폭은 다수의 TCP 플로우들이 시시각각 진입하고 종료되는 특성상, 일정하게 유지되기 어려우므로 특정한 상수 값으로 대변될 수 없다. 따라서 TCP 알고리즘에 따라 네트워크로 전송(주입)하는 패킷 양을 증가시키는 과정에서 가용 대역폭의 도달 여부 판단은, 네트워크가 "혼잡해졌음(congested)"을 판단하는 것으로 대치될 수 있다. 이러한 대치의 근거는 혼잡의 의미인 "더 이상의 패킷을 주입하는 것은 전체 네트워크 성능을 오히려 저하시킴"이 가용 대역폭의 의미인"주입할 수 있는 적정 패킷 양의 최대값"과 본질적으로 동일한 것에 있다.
TCP 알고리즘들이 혼잡을 판단하는 방법은 크게 손실 기반(Loss-based) TCP 와 지연기반(delay-based) TCP 로 구분되지만, 거의 대부분의 TCP 알고리즘들은 손실 기반 TCP로 혼잡을 판단한다. 여기서 상기 손실 기반 TCP에서는 패킷 손실(packet drop)을 기준으로 네트워크가 혼잡해졌음(congested)을 판단하며, 상기 지연 기반 TCP에서는 지연 시간(예컨대, 왕복 지연 시간인 RTT(Round Trip Time))의 초기 지연 시간(base RTT)대비 증가량을 기준으로 네트워크가 혼잡해졌음을 (선제적으로) 판단한다.
 기존 TCP 알고리즘들 중 대다수를 차지하는 손실 기반 TCP 알고리즘들은 가용 대역폭의 최대치를 정확하게 찾아낼 수 있다는 장점을 가지나, 이를 위해 지속적으로 패킷 손실을 발생시켜야 하는 단점을 가지며, 패킷 손실의 원인이 무선 채널로 인한 손실인 경우에는 정확한 대역폭 탐색에 실패하는 근본적인 한계를 가진다. 다만 3G 이후의 이동통신망(cellular networks)의 무선 채널은 패킷 전달에 실패할 경우 이를 MAC(Media Access Control) 계층에서 복구하며, 채널 상태 대비 MCS(Modulation and Coding Scheme) 레벨을 적응적으로 설정하는 방법 등을 이용하여 무선 채널에서 발생하는 패킷 손실을 TCP 송수신단이 감지하지 못하도록 감출 수 있으므로 손실 기반 TCP 를 최신 무선 환경에서 구동하는 것은 전송률 측면에서는 큰 성능 저하 문제를 발생시키지 않을 수 있다.
반면 지연 기반 TCP 알고리즘들은 네트워크에서 직접적인 패킷 손실이 발생하기 이전에 지연 시간의 증가를 기준으로 혼잡 제어를 수행할 수 있으므로, 패킷 손실을 방지할 수 있는 장점과 지연 시간을 적정선에서 유지할 수 있는 장점을 가지나, 손실 기반 TCP 알고리즘 대비 보수적인 대역폭 탐색 동작으로 가용 대역폭의 최대치 탐색에 어려움을 겪거나, 네트워크의 상황이 급변하여 TCP 알고리즘 동작의 기준으로 삼는 초기 지연 시간이 유효하지 않는 경우에는 가용 대역폭 탐색 기능을 상실하는 심각한 문제를 가질 수 있다.
구체적으로 상기 손실 기반 TCP 알고리즘 중, RFC(Request for Comments) 6582 로 표준화되어 널리 사용되었던 TCP New Reno와 Linux 운영체제의 기본 TCP 알고리즘으로 사용중인 TCP CUBIC 은 주어진 왕복지연시간(RTT) 단위에서 네트워크로 전송하는(주입하는) 패킷 양을 결정하는 혼잡 윈도우(congestion window: CWND)를 각각 아래 <수학식 1>를 이용하여 업데이트 한다.
Figure 112015055136910-pat00001
상기 <수학식 1>에서 CWND는 혼잡 윈도우, i는 RTT 시간 슬롯, SSThreshold는 상기 CWND의 증가 속도 구분을 판단하기 위한 임계값, W_max는 패킷 손실이 일어나기 바로 직전 윈도우 크기를 의미한다.
도 1은 TCP New Reno 의 혼잡 윈도우의 일 동작 예를 나타낸 것이다.
도 1을 참조하면, TCP New Reno 의 혼잡 윈도우는 매 RTT마다 SSThreshold(Slow start threshold) 구간에서는 2배씩 증가하고, SSThreshold 이상의 구간에서는 1씩 증가하는 특징을 가진다. 패킷 손실(101, 103)이 발생하면, SSThreshold = CWND(i)/2 로 설정되며, CWND(i+1) = SSThreshold(111)로 감소된 이후, 다시 증가를 시작한다. 그리고 도 1의 예와 같이 손실된 패킷이 정해진 기간 동안 복구되지 못하는 재전송 타임 아웃(retransmission timeout : RTO)이 발생할 경우 SSThreshold = CWND(i)/2(113) 로 설정되고, CWND(i+1)= 1 로 초기화되어 다시 증가를 시작한다.
도 2는 TCP CUBIC의 혼잡 윈도우의 일 동작 예를 나타낸 것이다.
도 2를 참조하면, TCP CUBIC 의 혼잡 윈도우는 지난번 패킷 손실(201, 203)이 발생한 이후의 시간(그리고 지난번 패킷 손실 시간이 정해지지 않은 초기에는 플로우 시작시간 이후의 시간)인 t 에 대해 3차 함수 즉 CUBIC 함수 형태로 증가하는 특징을 가진다. 패킷 손실이 발생하면, W_max = β*CWND(i-1), K =(β*W_max / C)1/3(213, 223)로 재설정된다. 여기서 β와 C 는 상수이며, 각각 0.8과 0.4 주변 값에서 튜닝될 수 있다.
지연 기반 TCP 알고리즘 중 CDN(Content Delivery Network) 분야에서 활용되고 있는 FAST TCP는 혼잡 윈도우를 아래 <수학식 2>를 이용하여 업데이트 한다.
Figure 112015055136910-pat00002
상기 <수학식 2>를 설명하면, FAST TCP 의 혼잡 윈도우 업데이트는 초기 지연 시간 대비 현재 관찰된 지연 시간의 비율과 상수 α의 조합에 의해 결정된 새로운 혼잡 윈도우와 과거 혼잡 윈도우의 상수
Figure 112015055136910-pat00003
Figure 112015055136910-pat00004
에 따른 중간 값으로 결정된다. 상기
Figure 112015055136910-pat00005
는 과거 값과 현재 값을 어떠한 비율로 반영해서 평균 값을 구할 것인지를 고려하는 Weighted Moving Average를 의미한다. 상수 α 값은 네트워크에서 FAST TCP에 따라 네트워크 버퍼에 항시 저장하고자 하는 패킷들의 개수를 의미한다. FAST TCP 의 혼잡 윈도우는 TCP New Reno와 유사한 상수 α에 의한 선형적인 증가 성분과 RTT 증가에 따른 비율적인 감소 성분의 조합에 의해 증감하는 특성이 있다. 도 3은 FAST TCP의 혼잡 윈도우의 일 동작 예를 나타낸 것으로서, FAST TCP 의 혼잡 윈도우는 그 증감 성분이 균형을 이루는 지점으로 수렴할 수 있다(CWND convergence). 일반적으로 α와
Figure 112015055136910-pat00006
는 각각 200 과 0.5 주변의 값으로 설정된다.
상기한 기존 TCP 알고리즘들은 가용 대역폭 내에서의 전송률(throughput) 최대화에 노력이 집중되었다. 이로 인해 기존 TCP 알고리즘들은 전반적으로 높은 최대 전송률을 보이며, 기존 TCP 알고리즘들 간의 차이점은 대부분 최대 전송률을 달성하는데 까지 걸리는 시간, 전송률을 끌어올리기 위한 혼잡 윈도우 증가 방식, 패킷 손실에 의해 혼잡이 감지되었을 경우의 혼잡 회피 방식, 패킷 손실이 지속적으로 발생할 경우의 전송률 손실량 등에 있다.
이와 같은 전송률 중심의 TCP 알고리즘 설계가 오랜 기간 지속되면서, 또 하나의 중요한 성능 지표인 지연 시간 성능은 기존 TCP 알고리즘들에서 직접적으로 고려되지 않았다. 따라서, 원격 수술 및 햅틱 제어, 실감 통신 등 차세대 고부가가치 네트워크 서비스들을 실현하기 위해 필수적인 높은 전송률과 낮은 지연 시간을 동시에 일관성 있게 보장할 수 있는 개선된 TCP 알고리즘이 요구된다.
본 발명은 통신 시스템에서 전송률을 높이면서 지연 시간을 낮출 수 있는 TCP 기반의 전송 제어 방법 및 장치를 제공한다.
또한 본 발명은 통신 시스템에서 최대 전송률과 최소 지연 시간을 보장할 수 있는 TCP 기반의 전송 제어 방법 및 장치를 제공한다.
또한 본 발명은 통신 시스템에서 전송률과 지연 시간을 적응적으로 제어할 수 있는 TCP 기반의 전송 제어 방법 및 장치를 제공한다.
본 발명의 실시 예에 따른 통신 시스템에서 TCP 기반의 전송 제어 방법은, 정해진 시간 마다 추정된 최대 혼잡 윈도우(CWND)를 이용하여 TCP 제어를 위한 목표 최대 전송률을 결정하는 과정과, 상기 정해진 시간 마다 추정된 최소 왕복 지연 시간(RTT)을 이용하여 상기 TCP 제어를 위한 목표 최소 RTT를 결정하는 과정과, 상기 목표 최대 전송률과 상기 목표 최소 RTT를 이용하여 RTT 시간 슬롯에서 혼잡 윈도우(CWND)와 수신 윈도우(RWND) 중 적어도 하나를 업데이트하는 과정을 포함한다.
또한 본 발명의 실시 예에 따른 통신 시스템에서 TCP 기반의 전송 제어 장치는, 네트워크를 통해 데이터를 송수신하는 송수신부와, 정해진 시간 마다 추정된 최대 혼잡 윈도우(CWND)를 이용하여 TCP 제어를 위한 목표 최대 전송률을 결정하고, 상기 정해진 시간 마다 추정된 최소 왕복 지연 시간(RTT)을 이용하여 상기 TCP 제어를 위한 목표 최소 RTT를 결정하며, 상기 목표 최대 전송률과 상기 목표 최소 RTT를 이용하여 RTT 시간 슬롯에서 혼잡 윈도우(CWND)와 수신 윈도우(RWND) 중 적어도 하나를 업데이트하는 제어부를 포함한다.
도 1은 TCP New Reno 의 혼잡 윈도우의 일 동작 예를 나타낸 도면,
도 2는 TCP CUBIC의 혼잡 윈도우의 일 동작 예를 나타낸 도면,
도 3은 FAST TCP의 혼잡 윈도우의 일 동작 예를 나타낸 도면,
도 4a 및 도 4b는 각각 HSPA+ 이동 통신망에서 측정된 TCP CUBIC의 혼잡 윈도우(CWND)와 지연 시간(RTT)의 일 예를 나타낸 도면,
도 5a 및 도 5b는 각각 LTE 이동 통신망에서 측정된 TCP CUBIC의 혼잡 윈도우(CWND)와 지연 시간(RTT)의 일 예를 나타낸
도 6a 및 도 6b는 LTE 이동 통신망에서 2개의 TCP CUBIC flow 가 하나의 단말에서 downlink 를 공유할 때, 각 flow 가 가져가는 Throughput의 일 예를 각각 나타낸 도면,
도 7은 본 발명의 실시 예에 따라 전송률을 높이면서 지연 시간을 낮출 수 있는 TCP 기반의 전송 제어를 수행하는 통신 시스템을 나타낸 도면,
도 8은 본 발명의 실시 예에 따른 단말의 일 구성 예를 나타낸 도면,
도 9는 본 발명의 실시 예에 따른 통신 시스템에서 위치가 고정된 단말과 서버 사이에서 제안된 TCP 알고리즘의 실험 결과를 나타낸 도면,
도 10은 본 발명의 실시 예에 따른 통신 시스템에서 이동하는 단말과 서버 사이에서 제안된 TCP 알고리즘의 실험 결과를 나타낸 도면,
도 11은 도 9의 실험과 동일한 상황에서 기존 TCP 알고리즘을 동시 적용한 경우 TCP 성능을 나타낸 도면,
도 12는 도 10의 실험과 동일한 상황에서 기존 TCP 알고리즘을 동시 적용한 경우 TCP 성능을 나타낸 도면.
하기에서 본 발명의 실시 예들을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다.
본 발명의 실시 예는 통신 시스템에서 높은 전송률과 함께 낮은 지연 시간을 보장할 수 있는 TCP 기반의 전송 제어 방안을 제안한 것이다.
먼저 본 발명의 이해를 돕기 위해, 기존 TCP 알고리즘에서 지연 발생에 대해 구체적으로 설명하기로 한다.
일 예로 TCP CUBIC 알고리즘의 경우, 이동 통신망에서 운영될 경우 높고, 일관되지 않은 지연 시간 성능을 보이며, TCP CUBIC 알고리즘에서 높은 전송률과 낮은 지연 시간을 동시에 보장하는 것은 근본적으로 불가능하다. 구체적으로 TCP CUBIC의 최대 전송률은 가용 대역폭에 매우 근접하는 것으로 알려져 있는 것에 반해, 지연 시간 성능은 예컨대, 3GPP(3rd Generation Partnership Project) 기반의 HSPA+(High Speed Packet data Access Plus) 이동 통신망에서는 수백 ms 내지 수초, LTE(Long Term Evolution) 이동 통신망에서는 150 내지 300 ms에 이르는 것으로 알려져 있다.
도 4a 및 도 4b는 각각 HSPA+ 이동 통신망에서 측정된 TCP CUBIC의 혼잡 윈도우(CWND)와 지연 시간(RTT)의 일 예를 나타낸 것이다.
TCP CUBIC 과 같은 손실 기반 TCP 의 지연 시간은 네트워크 경로에서 큐(Queue)의 길이와 밀접한 관계가 있다. 비트 단위로 환산된 Queue의 길이를 병목(Bottleneck) 전송률(즉 병목 대역폭)로 나누면 Queue에 패킷이 가득 찼을 경우에 발생하는 Queueing으로 인한 지연(Latency) 값이 추정되고, 이 지연 값이 네트워크 경로에서 겪는 최소의 지연 시간(Propagation latency + Processing latency)에 더해짐으로써 최종적인 RTT로 나타난다. 만약 2MB 의 Queue 가 네트워크 경로에 존재하고, 50Mbps의 병목 대역폭이 주어진다면, 0.32초 즉 320 ms의 추가적인 지연 시간이 발생된다. 3G, 4G를 포괄하는 이동 통신망은 큰 크기의 Queue를 가지도록 설계되어 왔으며, 이는 차세대 통신망인 5G 이동 통신망에서도 적용될 것으로 예측된다. 따라서 손실 기반 TCP 는 최소 지연 시간 이외에도 수십 내지 수백 ms에 달하는 추가적인 Queueing 지연 시간을 피할 수 없다.
도 5a 및 도 5b는 각각 LTE 이동 통신망에서 측정된 TCP CUBIC의 혼잡 윈도우(CWND)와 지연 시간(RTT)의 일 예를 나타낸 것으로서, 도 5a에서 TCP CUBIC의 CWND 동작은 상기한 Queueing 지연 시간을 강제로 줄이기 위해 Linux 커널에서 적용중인 스마트 단말을 위한 수신 윈도우(RWND) Cropping 기술의 효과를 보여준다. 상기 RWND Cropping은 CWND가 Queue를 가득 채울 때까지 증가되는 상황을 방지하기 위해 AWND(advertised window)= min(CWND, RWND)를 사용하여 최종적으로 흐름제어를 하는 TCP의 특성을 활용한다. 상기 AWND은 확인 응답 없이 송신할 수 있는 세그먼트 수에 해당되는 전송 윈도우 크기, 상기 RWND는 수신기의 버퍼 가용 용량을 나타내는 수신 윈도우 크기이다. Downlink에서, 네트워크 특성에 따라 미리 설정된(preset) RWND(예컨대, "tcp_rmem_max" 상수)를 수신기가 송신기에 전송해 줌으로써 송신기는 그 이상의 CWND를 전송할 수 없게 되고, 이는 결과적으로 도 5b와 같이 적당히 줄어든 RTT를 갖도록 해준다. 그러나 이러한 Ad-hoc 방식의 해결책은 아래 1), 2)와 같은 또 다른 문제점들을 발생시킨다.
1) 상기 미리 설정된 RWND(tcp_rmem_max)가 현재 네트워크 상황에 비해 너무 크거나 너무 작은 경우에 과도한 RTT 가 발생하거나, 최대 가용 대역폭을 활용하지 못하는 문제가 발생한다. 상기 미리 설정된 RWND(tcp_rmem_max)가 너무 크거나 너무 작은 경우는 채널 상황이 극단적으로 좋지 않은 경우이며, 해외 Roaming 중인 상황 등에서 흔하게 관찰될 수 있다.
2) 수신기가 다중의 TCP flow 를 이용할 때, TCP flow 간의 공평성은 중요한 문제이며, TCP CUBIC 의 경우 공평성이 확보되는 것으로 널리 알려져 있다. 그러나, TCP CUBIC과 같은 손실 기반 TCP 의 경우"손실"이 발생할 때 비로소 공평성이 보장되도록 설계 되어있으므로, RWND Cropping 기술이 사용되어 도 5a와 같이 손실이 거의 발생하지 않는 형태로 동작한다면 TCP flow 간의 형평성은 전혀 보장되지 않는다. 도 6a 및 도 6b는 LTE 이동 통신망에서 2개의 TCP CUBIC flow 가 하나의 단말(수신기)에서 downlink 를 공유할 때, 각 flow 가 가져가는 Throughput의 일 예를 각각 나타낸 것으로서, 이는 LTE 이동 통신망의 downlink 에서 10 초 간격으로 2 개의 flow 를 발생시킨 경우의 예를 나타낸 것이다.
한편 높은 전송률과 낮은 지연 시간의 동시 보장 측면에서 기존 TCP 알고리즘들 중 가장 좋은 성능을 보이는 TCP 알고리즘은 FAST TCP이다. FAST TCP는 지연 시간의 증가 량을 초기 RTT 와 비교하며 혼잡 윈도우를 조절하는 설계 덕분에 초기 RTT에서 크게 벗어나지 않는 지연 시간을 확보할 수 있으며, 상기 <수학식 2>에서 상수 α 값을 조절하여 전송률과 지연 시간 성능을 trade-off 함으로써, 적정한 수준의 전송률을 확보할 수 있다. 그러나 FAST TCP는 아래 a), b)와 같은 문제점으로 인해 차세대 5G 이동 통신망과 같은 무선 통신 시스템에서 사용되기에 부적절하다.
a) 상기 <수학식 2>에서 상수 α 값은 네트워크에서 FAST TCP에 따라 Queue에 항시 저장하고자 하는 패킷들의 개수를 의미한다. 따라서 네트워크에 다수의 TCP 플로우들이 유입될 경우, 상기 α 값은 누적되어 Queue에 존재하는 패킷들의 총 개수를 선형적으로 증가시키므로 낮은 지연시간의 보장은 불가능하다.
b) FAST TCP 동작의 기준이 되는 초기 RTT 는 다수의 TCP 플로우들이 유입될 경우, 후반부에 유입된 TCP 플로우로 갈수록 점차 큰 값을 가지게 되고, 기존의 TCP 플로우들이 종료되더라도 높은 초기 RTT 값을 그대로 유지하게 되므로, 단말의 또는 소수의 TCP 플로우만 존재할 경우에 달성할 수 있는 낮은 지연 시간으로 회복할 수 있는 방법이 없다.(이 경우 초기 RTT 추정 값의 차이로 인해, 초기에 유입된 TCP 플로우와 후반부에 유입된 TCP 플로우 간에 공평성을 확보할 수 없다.)
c) 가장 중요한 문제로, 수신기(단말)가 이동하는 상황에서 초기 RTT 를 업데이트할 수 있는 방법이 없다. 예를 들어 단말이 채널 상황이 좋지 않은 장소로 이동하여 초기 RTT 자체의 값이 높아져야 하는 상황이 되었다고 하더라도, FAST TCP 는 초기 RTT 를 업데이트할 수 있는 방법이 없다. 이와 같이 초기 RTT가 업데이트 되지 못할 경우, 초기 RTT를 부적절하게 키우거나 가용 대역폭을 모두 활용하지 못하는 등의 문제가 발생할 수 있다.
한편 또 다른 TCP 알고리즘으로 Bidirectional TCP는 직접적으로 최대 대역폭(Tput_max)을 탐색하며 혼잡 윈도우를 아래 <수학식 3>의 PI 제어 수식을 이용하여 업데이트하여 최대 대역폭의 대략 95% 이상의 성능을 보장할 수 있다. 아래 <수학식 3>의 PI 제어는 비례 적분 제어(Proportional-Integral control)를 의미하며, 상기 PI 제어는 현재 상태에서의 오차값의 크기에 비례한 제어를 수행하는 비례 항과 정상상태(steady-state)에서의 오차를 없애기 위해 적분 형태의 제어를 수행하는 적분 항으로 이루어진 대표적인 형태의 제어 기법이다. Queueing 이론에 따라, 주어진 링크의 최대 대역폭을 하회하는 수준의 전송률을 목표로 동작할 경우, 최대 대역폭에서 동작하는 경우보다 링크에 누적되는 Queue의 크기를 현저히 작게 유지할 수 있는 특징이 있다. 이것은 양방향(Bidirectional) TCP 의 RTT 가 해당 링크의 최소 RTT 에 근접하는 수준이 될 수 있음을 의미한다.
Figure 112015055136910-pat00007
상기 <수학식 3>에서 Tput_max은 최대 가용 대역폭을 의미하며, G 는 예컨대, 50 또는 그 주변의 값에서 설정되는 혼잡 윈도우 제어 상수이다. 혼잡 윈도우 제어에서 상승과 하강의 속도가 다른 것은 최대 전송률을 보다 안정적으로 보장하기 위함이다. E(i)는 현재 전송률과 전송률 Threshold 의 차이에 의해 계산되는 전송률 초과 및 부족 비율에 대한 P(proportional) 제어를 의미하며, intE(i)는 전송률과 전송률 Threshold 의 차이에 의해 계산되는 전송률 초과 및 부족 비율의 누적값에 대한 I(integral) 제어를 의미한다.
Figure 112015055136910-pat00008
는 커널에서 계산하기 어려운 적분식을 대체하기 위한 이동 평균에서의 가중치 상수로 예컨대, 1/8 주변의 값에서 설정된다.
상기 양방향(Bidirectional) TCP 의 경우 높은 전송률과 낮은 지연 시간을 손쉽게 달성할 수 있으나, 단말이 이동하는 상황에서 새로운 채널 환경에 맞는 최대 가용 대역폭(Tput_max)을 탐색하기 위해 CWND를 증감하는 동작이 반복된다. 따라서 예를 들어 사물 인터넷(Internet of Things : IoT) 장치들과 같이 경량(light-weight) TCP를 요구하면서 이동성은 거의 없는 장치들에서의 안정적인 TCP 성능과 달리, 비교적 이동성이 큰 스마트 폰 등의 단말에서는 이동 상황에서 상기 최대 가용 대역폭 Tput_max를 탐색하는 동작에 의해 RTT가 일시적으로 증가되는 것을 방지할 수 없다.
따라서 TCP 알고리즘에서 흐름 제어와 공평성 확보는 네트워크에서 단말의 이동성에 의해 지속적으로 변화하는 네트워크 환경에서도 보장되어야 한다.
도 7은 본 발명의 실시 예에 따라 전송률을 높이면서 지연 시간을 낮출 수 있는 TCP 기반의 전송 제어를 수행하는 통신 시스템을 나타낸 것이고, 도 8은 도 7의 단말의 일 구성 예를 나타낸 것이다.
도 7을 참조하면, 서버(700)와 단말(800)은 본 발명의 실시 예에서 제안하는 TCP 알고리즘에 따라 전송 제어를 수행한다. 서버(700)와 단말(800)은 인터넷(71) 등의 IP 기반 네트워크와 이동 통신망(73)를 통해 패킷들을 송수신하고, 패킷들의 송수신 과정에서 TCP 전송 제어가 수행된다. TCP 송신단에서 동작하는 알고리즘은 서버(700)와 단말(800)에 모두 적용 가능하며, 일반적으로 서버의 TCP 알고리즘을 변경하는 것은 복잡한 과정을 수반하므로 단말(800)의 TCP 송신단에 본 발명의 TCP 알고리즘이 적용될 수 있다. TCP 수신단에서 동작하는 TCP 알고리즘은 서버(700)가 기존의 TCP 알고리즘을 사용할 때, 단말(800)의 TCP 수신단에서 RWND를 통해 본 발명의 TCP 알고리즘으로 강제적으로 동작하도록 가이드해주는 역할을 할 수 있다. 따라서 단말(800)의 TCP 수신단에 본 발명의 TCP 알고리즘이 적용될 수 있다. 결국 본 발명의 실시 예에서는 단말(800)의 TCP 송신단과 TCP 수신단을 하나의 OTA(Over the Air) 업데이트 패키지로 제작하여 단말(800)에게 제공한다면, 단말(800)은 어떠한 서버(700)와 송신(uplink) 및 수신(downlink)을 하더라도 본 발명의 실시 예에서 제안하는 TCP 알고리즘의 동작을 수행할 수 있다.
도 8은 본 발명의 실시 예에 따른 TCP 기반의 전송 제어를 수행하는 통신 시스템에서 단말(800)의 구성을 나타낸 도면이다. 도 8의 단말(800) 구성은 설명의 편의를 위해, TCP 수신단과 TCP 송신단의 구성을 함께 도시한 것이다.
도 8을 참조하면, 단말(800)의 TCP 수신단은 RTT 측정부(851a), RTT 인자 계산부(853a), 전송률(Tput) 측정부(851b), 전송률 인자(Tput factor) 계산부(853b), 최대 혼잡윈도우(CWND_max) & 최대 전송률 및 최소 RTT(MTmR(Max Throughput min RTT)) 추정부(이하, CWND_max & MTmR 추정부)(855), 및 RWND 제어부를 포함하는 제어부(850), 송신부(830)를 포함하여 구현될 수 있다. 그리고 상기 송신부(830)는 제어부(850)로부터 전달되는 RWND를 ACK의 윈도우(Window) 필드에 피기백(piggyback)하여 송신한다.
또한 도 8을 참조하면, 단말(800)의 TCP 송신단은 RTT 측정부(851a), RTT 인자 계산부(853a), 전송률(Tput) 측정부(851b), 전송률 인자(Tput factor) 계산부(853b), CWND_max & MTmR 추정부(855), 및 CWND 제어부를 포함하는 제어부(850), 수신부(810), 그리고 송신부(830)를 포함하여 구현될 수 있다. 그리고 상기 수신부(810)는 서버(700)로부터 패킷 수신 확인을 나타내는 ACK를 수신하고, 상기 송신부(830)는 제어부(850)로부터 전달되는 CWND를 근거로 서버(700)로 송신하는 패킷의 양을 제어한다.
그리고 상기 RWND 제어부와 CWND 제어부는 편의상 도 8에서 RWND & CWND 제어부(857)로 함께 도시되어 있다. 도 8의 단말(800) 구성은 관련 기능 블록들의 일 구성 예를 나타낸 것이며, 당업자는 아래 설명될 본 발명의 실시 예에 따른 TCP 알고리즘을 수행하는 다양한 형태의 기능 블록들로 단말(800)을 구현할 수 있을 것이다. 도 8에서 송신부(830)와 수신부(810)는 서버(700)와 이동 통신망(73)을 통해 패킷을 송수신하기 위한 통신 인터페이스를 포함한다.
도 8에서 RWND & CWND 제어부(857)은 기존의 TCP 알고리즘들과 유사하게 혼잡 윈도우(CWND)를 증감시키는 공지된 혼잡 윈도우 업데이트 알고리즘을 수행할 수 있다. CWND_max & MTmR 추정부(855)는 본 발명의 실시 예에 따라 최대 전송률과 최소 RTT를 달성할 수 있는 CWND_max의 값을 추정하고, 추정된 CWND_max를 통해 달성할 수 있는 현재 채널 상황에서의 최대 전송률 및 최소 RTT(MTmR)를 추정하도록 본 발명의 TCP 알고리즘에서 추가된 구성이다. 즉 상기 CWND_max & MTmR 추정부(855)는 혼잡 윈도우를 끌어올려 최대 전송률과 최소 RTT 를 달성하기 위해 필요한 CWND_max 값을 추정하고, 추정된 CWND_max 와 실측된 RTT를 조합하여 주어진 채널 환경에서 낼 수 있는 최대 전송률 및 최소 RTT를 추가로 추정한다. 이를 통해 본 발명의 TCP 알고리즘은 CWND를 최대 전송률과 최소 RTT를 달성하는 방향으로 업데이트할 수 있다.
이해를 돕기 위해, 기존 손실 기반 또는 지연 기반 TCP 알고리즘과 본 발명의 TCP 알고리즘을 비교하여 설명하면, 기존 손실 기반 TCP 알고리즘은 혼잡 윈도우를 손실이 발생할 때까지 증가시키고, 손실이 발생하면 혼잡 윈도우를 정해진 비율(%) 만큼 감소시킨 후, 다시 증가시키는 방식이다. 기존 지연 기간 TCP 알고리즘은 혼잡 윈도우를 증가시키되 최소 RTT 대비 현재 RTT가 증가할 경우, 비례적으로 혼잡 윈도우를 감소시키는 방식이다. 즉 상기한 기존의 TCP 알고리즘들은 손실이 발생하거나, 지연 시간이 증가하는 것을 최대 전송률이 발생한 시점으로 추정하였고, 지연 기반 TCP 알고리즘들은 추가적으로 측정값을 통해 최소 RTT를 추정하였다. 이러한 기존의 TCP 알고리즘들에 의한 전송 제어가 최대 전송률과 최소 RTT를 달성하지 못하는 상황에서 이루어진다면, 앞서 언급한 것처럼 혼잡에 의한 손실이 발생한 경우, 다른 TCP 플로우 유입 및 채널 환경 변화에 따라 최소 RTT 값의 추정이 부정확한 경우 TCP 알고리즘은 비정상적인 동작을 하게 된다.
반면 본 발명의 TCP 알고리즘은 TCP 송신단과 TCP 수신단에서 공통적으로 매 RTT마다 업데이트가 이루어지며, 상기 CWND_max(또는 RWND_max)의 추정은 전송률 측정치의 최대값이 더 이상 증가하지 않고 수렴했다고 판단되는 시점에, 최소 RTT 값 측정치와의 곱에 의해 아래 <수학식 4>와 같은 방식으로 수행될 수 있다.
Figure 112015055136910-pat00009
상기 <수학식 4>에서 C는 단말(800)에서 i 번째 RTT 시간 슬롯까지 관찰된 최소 RTT의 추정 (i.e. min_RTT(i) = min (min_RTT(i-1), RTT(i))) 과, 단말(800)에서 i 번째 RTT 시간 슬롯까지 관찰된 최대 전송률의 추정(i.e. max_Tput(i) = max (max_Tput(i-1), Tput(i)))에서 발생할 수 있는 오류를 보정하고, 최대 전송률을 달성하기 위해 공격적으로 CWND를 설정하기 위한 임의의 상수이며, 대략 1 내지 1.5 사이의 값 중에서 선택될 수 있다. 본 실시 예에서는 C 값을 1.2로 가정하였다.
본 발명의 실시 예에서 상기 max_Tput(i)와 min_RTT(i)는 아래 <수학식 5>를 이용하여 매 RTT 마다 업데이트될 수 있으며, 네트워크 상태에 따라 그 업데이트 주기는 RTT보다 큰 값으로 변경할 수도 있다.
Figure 112015055136910-pat00010
단말(800)은 전송률 측정치가 최대값에 도달했음을 판단하기 위해, 상기 max_Tput(i-1)이 현재 전송률(current_Tput)에 의해 업데이트되지 않은 채 RTT의 정해진 배수만큼(예를 들어, 3*RTT 시간만큼) 지난 것을 활용하거나, 보다 빠른 최대값 도달 시점 파악을 위해 현재 전송률(current_Tput)에 의해 업데이트되지만 그 업데이트 폭이 정해진 비율만큼(예를 들어, 3% 미만인 상태로 3*RTT 시간 만큼) 지난 것을 활용할 수도 있다. 상기 3*RTT 및 3%는 설명의 편의상 예시한 임의의 기준이며, 보다 정확한 판단을 위해 더 긴 시간을 기다리거나, 더 빠른 판단을 위해 5% 등으로 업데이트 범위를 확장할 수도 있으며, 업데이트 범위의 변경 또한 가능할 것이다.
상기한 동작에 따라 CWND_max 또는 RWND_max가 설정되면(즉, 최대 전송률을 찾았음을 의미하는 max_Tput_found = 1이 되면), 단말(800)은 매 RTT마다 최대 전송률과 최소 RTT를 아래 <수학식 6>을 이용하여 추정하고, 그 추정 결과를 TCP 제어의 Target(또는 Threshold) 값으로 이용하여, i 번째 RTT 시간 슬롯에서의 CWND(i) 또는 RWND(i)를 아래 <수학식 7>과 같이 업데이트할 수 있다. 그리고 목표 최대 전송률은 최대 가용 전송률 대비 정해진 비율 만큼 상향된 값으로 설정하여 주어진 채널 환경에서 최대 전송률을 달성하는 것도 가능하다.
Figure 112015055136910-pat00011
Figure 112015055136910-pat00012
상기 <수학식 7>에서 RTT_factor(i)와 Tput_factor(i)는 각각 i 번째 RTT 시간 슬롯에서 RTT_target 대비 증가된 RTT를 감소시키기 위한 CWND 제어 양(값)(또는 RWND 제어 양(값))과 Tput_target 대비 감소된 Tput을 증가시키기 위한 CWND 제어 양(값)(또는 RWND 제어 양(값))을 의미하며, 도 8의 RTT factor 계산부(853a)와 Tput factor 계산부(853b)에서 아래 <수학식 8>과 같이 계산된다. 상기 RTT_factor(i)는 음수의 값을 가지며, Tput_factor(i)는 양수의 값을 가진다.
Figure 112015055136910-pat00013
상기 <수학식 8>에서 G1, G2는 예컨대, 50 또는 50 주변의 값에서 설정되는 혼잡 윈도우의 제어 상수이며, RTT와 Tput에 의한 제어 Gain(최대 제어 범위)을 의미한다.
상기한 본 발명의 TCP 알고리즘은 CWND(i)= CWND(i-1)+ 0 + 0 에서 평형을 이룬다. 이때, 상기 RTT_factor 와 Tput_factor 가 모두 0이 되는 상황은 RTT_target 과 Tput_target이 동시에 달성되는 상황이므로 이상적인 제어 상황으로 볼 수 있다.
그리고 상기한 본 발명의 TCP 알고리즘을 이용하여 제어부(850)는 채널이 변화하는 상황에서도 매 RTT마다 최대 전송률과 최소 RTT를 동시에 달성하도록 RWND 또는 CWND을 증감시키는 동작을 제어한다.
상기 <수학식 7>, <수학식 8>에서 상기 CWND(i)와 RWND(i)는 최대 전송률과 최소 RTT를 만족하도록 적응적으로 증가 또는 감소될 수 있다. 또한 본 발명의 실시 예에서 상기 <수학식 7>, <수학식 8>을 이용한 TCP 기반의 전송 제어는 상기 RTT_factor 및 상기 Tput_factor 을 계산하여 제어 방식 중 AIAD(Additive Increase Additive Decrease), AIMD(Additive Increase Multiplicative Decrease), MIMD(Multiplicative Increase Multiplicative Decrease), 또는 MIAD (Multiplicative Increase Adaptive Decrease) 형태로 수행될 수 있다.
예를 들어 AIAD 형태의 전송 제어에서 CWND(i) = CWND(i-1) + G*RTT_factor(i) + G*Tput_factor(i)와 같이 CWND를 제어할 수 있다.(G는 상수)
또한 AIMD 형태의 전송 제어에서 CWND(i) = α*CWND(i-1)*RTT_factor(i) + (1-α)*CWND(i-1) + G*Tput gain(i)와 같이 CWND를 제어할 수 있다.(0<α<1, G는 상수)
또한 AIMD 형태의 전송 제어에서 CWND(i) = CWND(i-1)*RTT_factor(i) + G*Tput gain(i)와 같이 CWND를 제어할 수 있다.(G는 상수)
또한 MIMD 형태의 전송 제어에서 CWND(i) = α*CWND(i-1)*RTT_factor(i) +(1-α)*CWND*Tput gain(i)와 같이 CWND를 제어할 수 있다.(0<α<1)
또한 MIAD 형태의 전송 제어에서 CWND(i) = α*CWND(i-1) + G*RTT_factor(i) +(1-α)*CWND(i-1)*Tput gain(i)와 같이 CWND를 제어할 수 있다.(0<α<1, G는 상수)
또한 MIAD 형태의 전송 제어에서 CWND(i) = G*RTT_factor(i) + CWND*Tput gain(i)와 같이 CWND를 제어할 수 있다.(G는 상수)
그리고 상기한 CWND 제어 방식들은 RWND 제어에도 적용될 수 있다.
이하 본 발명의 TCP 알고리즘의 효과를 실제 통신 시스템에서 실측하기 위해 예컨대, Ubuntu 13.10(Linux Kernel 3.10)로 동작하는 서버(Intel IvyBridge i5 CPU, 128GB SSD, 8GB RAM)와, Android 4.4.2(Linux Kernel 3.4.10)로 동작하는 단말(Nexus 5, Krait 400, Adreno 330, 2GB RAM)으로 이루어진 테스트 베드를 이용한 실측 결과를 설명하기로 한다. 그리고 본 발명의 TCP 알고리즘은 단말(800)의 Linux 커널에 구현될 수 있으며, 서버(700)에 TCP-probe 모듈을 설치하여 TCP 성능을 측정하도록 하고, 단말(800)의 Linux 커널에서도 자체적으로 값들을 측정하도록 하였다. 그리고 단말(800)의 Linux 커널에는 TCP 송신단과 TCP 수신단 코드가 별도로 존재하며, TCP 송신단과 TCP 수신단의 알고리즘을 각각 구현하였다. 그리고 서버(700)와 단말(800)은 인터넷(71)과 이동통신망(73)을 통해 통신 연결되는 네트워크 환경을 가정한다.
상기한 실측 환경에서 이동통신망(73)의 기지국은 Good 채널 환경에서 약 -80dBm 에서 -90dBm 사이의 신호 세기를 유지하였으며, Bad 채널 환경에서는 약 -105dBm 까지 저하되기도 하였다. 그리고 -90dBm 이상의 신호 세기는 이동통신망(73)(예컨대, LTE 시스템)의 최대 속도에 근접한 속도를 얻을 수 있는 충분한 신호 세기이며, -115dBm 이하의 신호 세기에서는 전송률이 0에 근접한다. 서버(700)와 단말(800)은 TCP를 이용하여 대용량 파일을 실험 시나리오에 따라 25초 ~ 60초 동안 단말(800)로 서로에게 전송하도록 설정되었으며, 필요에 따라 동시에 여러 개의 flow 를 생성하기도 하였다.
각 이동통신망의 사업자가 운용하는 LTE 시스템에서 실험된 측정치에 따르면 LTE 시스템은 광대역 지원이 가능한 기지국과 접속하였을 때 최대 85Mbps, 광대역 지원이 불가능한 기지국과 접속하였을 때 최대 50Mbps의 전송률이 관찰되었으며, 최소 RTT는 각각 약 40ms, 45ms 로 관찰되었다.
도 9의 (a) 내지 (g)는 본 발명의 실시 예에 따른 통신 시스템에서 위치가 고정된 단말과 서버 사이에서 LTE Downlink(서버: TCP CUBIC, 단말: 제안된 TCP 사용)에서 TCP Probe를 이용하여 측정한 AWND, RTT, Throughput, RWND 및 단말의 kernel 에서 기록한 RTT, Throughput, RWND(y축 lable 이 k 로 시작)를 나타낸 것이다. 도 10의 (a) 내지 (g)는 본 발명의 실시 예에 따른 통신 시스템에서 채널 환경이 Good => Bad => Good으로 변화하는 이동 단말과 서버 사이에서 LTE Downlink(서버: TCP CUBIC, 단말: 제안된 TCP 사용)에서 TCP Probe를 이용하여 측정한 AWND, RTT, Throughput, RWND 및 단말의 kernel에서 기록한 RTT, Throughput, RWND를 나타낸 것이다.
상기 실험 결과를 정리하면, 도 9와 도 10은 각각 LTE Downlink에서 단말이 정지해 있거나(도 9), 이동하는 상황에서(도 10) 측정된 결과를 보여준다. Downlink의 경우에는 서버가 TCP 송신단의 역할을 하므로 단말의 TCP 수신단이 RWND를 통해 guide를 해주는 값을 서버가 최종 AWND로 출력하는 형태로 전송 제어가 이루어 지며, 최대 전송률을 측정할 때까지는 RWND 가이드 값이 CWND 보다 일반적으로 크게 주어지므로, 서버의 TCP 알고리즘인 TCP CUBIC의 제어 형태를 띄게 된다. 보다 구체적으로 도 9에서 관찰된 동작을 살펴보면, 본 발명의 TCP 알고리즘은 대략 AWND = 320에서 최대 전송률과 최소 RTT 를 달성하는 형태로 수렴되었으며, 이때 단말의 커널에서 측정된 RTT는 평균 50ms를 달성하며(도 9의 (c)), 단말의 커널에서 측정된 전송률은 평균 47Mbps 를 달성한다.(도 9의 (e))
도 10의 실험 결과를 상세히 살펴보면, Good 채널에서 측정을 시작한 후 약 10초부터 단말이 Bad 채널로 이동하였다가 약 25초부터 Good 채널로 돌아오는 시나리오에서도 평균 RTT 는 65ms 를 달성하고, 평균 전송률은 33 Mbps 를 달성하는 것을 알 수 있다. Bad 채널에서 측정한 최소의 RTT 와 최대 전송률이 55ms 와 30Mbps 인것을 감안하면, 변화한 채널 환경에서 달성할 수 있는 최소 RTT와 최대 전송률에 준하는 성능을 단말의 이동 상황에서도 항시 달성한 것을 확인할 수 있다.
한편 도 11의 (a) 내지 (g)와, 도 12의 (a) 내지 (g)는 각각 상기한 도 9와 도 10의 실험과 동일한 상황에서 기존 TCP 알고리즘(예를 들어, TCP CUBIC 과 RWND cropping)를 동시 적용한 경우 TCP 성능을 보여주며, 각각 평균 220ms, 380ms 의 RTT를 가짐을 보여준다. 이러한 비교 실험 결과를 통해, 본 발명의 TCP 알고리즘은 기존 TCP 알고리즘에 비해 전송률 손실 없이 약 80% 의 RTT 절감 효과를 가짐을 알 수 있다.
따라서 상기한 본 발명의 실시 예에 따른, TCP 알고리즘을 적용하면, 단말의 정지 상황은 물론 이동 상황에서도 최대 전송률과 최소 지연 시간의 동시 달성을 만족할 수 있다. 그리고 본 출원인의 실험 결과, 상기 최대 전송률은 가용 대역폭의 95% 이상의 전송률을 달성할 수 있으며, 상기 최소 지연 시간은 달성 가능한 최소 지연 시간의 1.5배 이내의 지연 시간을 달성할 수 있다. 또한 본 발명의 실시 예에 따른, TCP 알고리즘을 적용하면 단말의 이동에 따른 채널 변화에 관계 없이, 적응적으로 네트워크 상황에 대응하여 최대 전송률 및 최소 지연 시간을 보장할 수 있는 효과가 있다.

Claims (20)

  1. 통신 시스템에서 TCP(Transmission Control Protocol) 기반의 전송 제어 방법에 있어서,
    왕복지연시간(round trip time, RTT) 시간 슬롯 마다 추정된 최대 혼잡 윈도우(CWND)를 이용하여 TCP 제어를 위한 목표 최대 전송률을 결정하는 과정;
    상기 RTT 시간 슬롯 마다 추정된 최소 RTT을 이용하여 상기 TCP 제어를 위한 목표 최소 RTT를 결정하는 과정;
    i 번째 RTT 시간 슬롯에서 상기 목표 최소 RTT와 i 번째 RTT 사이의 차이를 나타내는 RTT 인자(factor)와, 상기 i 번째 RTT 시간 슬롯에서 상기 목표 최대 전송률과 i 번째 전송률 사이의 차이를 나타내는 스루풋(throughput) 인자를 계산하는 과정; 및
    i-1 번째 RTT 시간 슬롯에서 상기 RTT 인자 및 상기 스루풋 인자를 제2 혼잡 윈도우(CWND) 또는 제2 수신 윈도우(RWND)에 적용함으로써 상기 i 번째 RTT 시간 슬롯에서 제1 CWND와 제1 RWND 중 적어도 하나를 업데이트하는 과정을 포함하는 전송 제어 방법.
  2. 제 1 항에 있어서,
    상기 업데이트하는 과정은, 상기 i 번째 RTT 시간 슬롯까지 관찰된 최대 전송률과 상기 i 번째 RTT 시간 슬롯까지 관찰된 최소 RTT를 업데이트하는 과정을 더 포함하는 전송 제어 방법.
  3. 제 1 항에 있어서,
    상기 i 번째 RTT 시간 슬롯의 간격 마다 각각의 RTT를 추정하는 과정을 더 포함하는 전송 제어 방법.
  4. 제 1 항에 있어서,
    상기 스루풋 인자는, 상기 목표 최대 전송률 대비 감소된 상기 i 번째 전송률을 증가시키기 위해 사용되는 것인 전송 제어 방법.
  5. 제 1 항에 있어서,
    상기 RTT 인자는, 상기 목표 최소 RTT 대비 증가된 상기 i 번째 RTT를 감소시키기 위해 사용되는 것인 전송 제어 방법.
  6. 제 1 항에 있어서,
    상기 목표 최대 전송률은 최대 가용 전송률 대비 정해진 비율 만큼 상향된 값으로 더 설정되는 전송 제어 방법.
  7. 제 1 항에 있어서,
    상기 업데이트하는 과정은 아래 수학식에 의해 수행되며,
    Figure 112020057120191-pat00014

    상기 수학식에서 CWND(i)는 상기 i 번째 RTT 시간 슬롯에서 업데이트된 상기 제1 CWND, RWND(i)는 상기 i 번째 RTT 시간 슬롯에서 업데이트된 상기 제1 RWND, RTT_factor(i)은 상기 i 번째 RTT 시간 슬롯에서 상기 RTT 인자, Tput_factor(i)는 상기 i 번째 RTT 시간 슬롯에서 상기 스루풋 인자, 그리고 min_RTT(i)= min(min_RTT(i-1), current_RTT)이고, min_RTT(i-1)은 상기 i-1 번째 RTT 시간 슬롯에서 상기 목표 최소 RTT, current_RTT는 상기 i 번째 RTT를 의미하는 전송 제어 방법.
  8. 제 7 항에 있어서,
    상기 RTT_factor(i)와 상기 Tput_factor(i)는 아래 수학식에 의해 계산되는 전송 제어 방법,
    Figure 112020057120191-pat00015

    상기 수학식에서 RTT_target은 상기 목표 최소 RTT, Tput_target은 상기 목표 최대 전송률, current_RTT는 상기 i 번째 RTT, current_Tput은 상기 i 번째 전송률, 그리고 G1, G2는 상수임.
  9. 제 8 항에 있어서,
    상기 RTT_factor(i)는 음수의 값을 가지며, 상기 Tput_factor(i)는 양수의 값을 갖는 전송 제어 방법.
  10. 제 1 항에 있어서,
    상기 i 번째 RTT 시간 슬롯에서 상기 제1 CWND의 업데이트는 아래 수학식 중 하나에 의해 수행되는 전송 제어 방법:
    AIAD(additive increase additive decrease) 형태의 전송 제어에서 CWND(i) = CWND(i-1) + G*RTT_factor(i) + G*Tput_factor(i);
    AIMD(Additive Increase Multiplicative Decrease) 형태의 전송 제어에서 CWND(i) = α*CWND(i-1)*RTT_factor(i) + (1-α)*CWND(i-1) + G*Tput gain(i);
    상기 AIMD 형태의 전송 제어에서 CWND(i) = CWND(i-1)*RTT_factor(i) + G*Tput gain(i);
    MIMD(Multiplicative Increase Multiplicative Decrease) 형태의 전송 제어에서 CWND(i) = α*CWND(i-1)*RTT_factor(i) + (1-α)*CWND*Tput gain(i);
    MIAD(Multiplicative Increase Adaptive Decrease) 형태의 전송 제어에서 CWND(i) = α*CWND(i-1) + G*RTT_factor(i) +(1-α)*CWND(i-1)*Tput gain(i); 또는
    상기 MIAD 형태의 전송 제어에서 CWND(i) = G*RTT_factor(i) + CWND*Tput gain(i),
    상기 수학식들에서 0<α<1, G는 상수, CWND(i)는 상기 i 번째 RTT 시간 슬롯에서 업데이트된 상기 제1 CWND, RTT_factor(i)은 상기 i 번째 RTT 시간 슬롯에서 상기 RTT 인자, Tput gain(i)은 상기 i 번째 RTT 시간 슬롯에서 스루풋 증가(throughput gain), Tput_factor(i)는 상기 i 번째 RTT 시간 슬롯에서 스루풋 인자를 의미함.
  11. 통신 시스템에서 TCP(Transmission Control Protocol) 기반의 전송 제어를 수행하는 장치에 있어서,
    네트워크를 통해 데이터를 송수신하는 송수신부; 및
    왕복지연시간(round trip time, RTT) 시간 슬롯 마다 추정된 최대 혼잡 윈도우(CWND)를 이용하여 TCP 제어를 위한 목표 최대 전송률을 결정하고, 상기 RTT 시간 슬롯 마다 추정된 최소 RTT을 이용하여 상기 TCP 제어를 위한 목표 최소 RTT를 결정하며, i 번째 RTT 시간 슬롯에서 상기 목표 최소 RTT와 i 번째 RTT 사이의 차이를 나타내는 RTT 인자(factor)와, 상기 i 번째 RTT 시간 슬롯에서 상기 목표 최대 전송률과 i 번째 전송률 사이의 차이를 나타내는 스루풋(throughput) 인자를 계산하고, i-1 번째 RTT 시간 슬롯에서 상기 RTT 인자 및 상기 스루풋 인자를 제2 혼잡 윈도우(CWND) 또는 제2 수신 윈도우(RWND)에 적용함으로써 상기 i 번째 RTT 시간 슬롯에서 제1 CWND와 제1 RWND 중 적어도 하나를 업데이트하는 제어부를 포함하는 장치.
  12. 제 11 항에 있어서,
    상기 제어부는 상기 i 번째 RTT 시간 슬롯까지 관찰된 최대 전송률과 상기 i 번째 RTT 시간 슬롯까지 관찰된 최소 RTT를 업데이트하는 장치.
  13. 제 11 항에 있어서,
    상기 제어부는 상기 i 번째 RTT 시간 슬롯의 간격 마다 각각의 RTT를 추정하도록 더 구성되는 장치.
  14. 제 11 항에 있어서,
    상기 스루풋 인자는 상기 목표 최대 전송률 대비 감소된 상기 i 번째 전송률을 증가시키기 위해 사용되는 것인 장치.
  15. 제 11 항에 있어서,
    상기 RTT 인자는 상기 목표 최소 RTT 대비 증가된 상기 i 번째 RTT를 감소시키기 위해 사용되는 것인 장치.
  16. 제 11 항에 있어서,
    상기 목표 최대 전송률은 최대 가용 전송률 대비 정해진 비율 만큼 상향된 값으로 더 설정되는 장치.
  17. 제 11 항에 있어서,
    상기 제어부는 아래 수학식에 의해 상기 업데이트를 수행하며,
    Figure 112020057120191-pat00016

    상기 수학식에서 CWND(i)는 상기 i 번째 RTT 시간 슬롯에서 업데이트된 상기 제1 CWND, RWND(i)는 상기 i 번째 RTT 시간 슬롯에서 업데이트된 상기 제1 RWND, RTT_factor(i)은 상기 i 번째 RTT 시간 슬롯에서 상기 RTT 인자, Tput_factor(i)는 상기 i 번째 RTT 시간 슬롯에서 상기 스루풋 인자, 그리고 min_RTT(i)= min(min_RTT(i-1), current_RTT) 이고, min_RTT(i-1)은 상기 i-1 번째 RTT 시간 슬롯에서 상기 목표 최소 RTT, current_RTT는 상기 i 번째 RTT를 의미하는 장치.
  18. 제 17 항에 있어서,
    상기 RTT_factor(i)와 상기 Tput_factor(i)는 아래 수학식에 의해 계산되는 장치,
    Figure 112020057120191-pat00017

    상기 수학식에서 RTT_target은 상기 목표 최소 RTT, Tput_target은 상기 목표 최대 전송률, current_RTT는 상기 i 번째 RTT, current_Tput은 상기 i 번째 전송률, 그리고 G1, G2는 상수임.
  19. 제 18 항에 있어서,
    상기 RTT_factor(i)는 음수의 값을 가지며, 상기 Tput_factor(i)는 양수의 값을 갖는 장치.
  20. 제 11 항에 있어서,
    상기 i 번째 RTT 시간 슬롯에서 상기 제1 CWND의 업데이트는 아래 수학식 중 하나에 의해 수행되는 장치:
    AIAD(additive increase additive decrease) 형태의 전송 제어에서 CWND(i) = CWND(i-1) + G*RTT_factor(i) + G*Tput_factor(i);
    AIMD(Additive Increase Multiplicative Decrease) 형태의 전송 제어에서 CWND(i) = α*CWND(i-1)*RTT_factor(i) + (1-α)*CWND(i-1) + G*Tput gain(i) ;
    상기 AIMD 형태의 전송 제어에서 CWND(i) = CWND(i-1)*RTT_factor(i) + G*Tput gain(i),
    MIMD(Multiplicative Increase Multiplicative Decrease) 형태의 전송 제어에서 CWND(i) = α*CWND(i-1)*RTT_factor(i) + (1-α)*CWND*Tput gain(i) ;
    MIAD(Multiplicative Increase Adaptive Decrease) 형태의 전송 제어에서 CWND(i) = α*CWND(i-1) + G*RTT_factor(i) +(1-α)*CWND(i-1)*Tput gain(i) ; 또는
    상기 MIAD 형태의 전송 제어에서 CWND(i) = G*RTT_factor(i) + CWND*Tput gain(i) ;
    상기 수학식들에서 0<α<1, G는 상수, CWND(i)는 상기 i 번째 RTT 시간 슬롯에서 업데이트된 제1 CWND, RTT_factor(i)은 상기 i 번째 RTT 시간 슬롯에서 상기 RTT 인자, Tput gain(i)은 상기 i 번째 RTT 시간 슬롯에서 스루풋 증가(throughput gain), Tput_factor(i)는 상기 i 번째 RTT 시간 슬롯에서 스루풋 인자를 의미함.
KR1020150080840A 2015-06-08 2015-06-08 통신 시스템에서 tcp 기반의 전송 제어 방법 및 장치 KR102363534B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020150080840A KR102363534B1 (ko) 2015-06-08 2015-06-08 통신 시스템에서 tcp 기반의 전송 제어 방법 및 장치
US15/735,012 US10374958B2 (en) 2015-06-08 2016-06-08 Method and apparatus for TCP-based transmission control in communication system
PCT/KR2016/006078 WO2016200154A1 (ko) 2015-06-08 2016-06-08 통신 시스템에서 tcp 기반의 전송 제어 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150080840A KR102363534B1 (ko) 2015-06-08 2015-06-08 통신 시스템에서 tcp 기반의 전송 제어 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20160144257A KR20160144257A (ko) 2016-12-16
KR102363534B1 true KR102363534B1 (ko) 2022-02-17

Family

ID=57503472

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150080840A KR102363534B1 (ko) 2015-06-08 2015-06-08 통신 시스템에서 tcp 기반의 전송 제어 방법 및 장치

Country Status (3)

Country Link
US (1) US10374958B2 (ko)
KR (1) KR102363534B1 (ko)
WO (1) WO2016200154A1 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102210738B1 (ko) * 2015-01-28 2021-02-02 삼성전자주식회사 통신 시스템에서 혼잡 제어 방법 및 장치
KR101941362B1 (ko) * 2017-02-24 2019-01-24 한국과학기술원 Mptcp 성능 향상을 위한 전송 지연 측정 방법 및 시스템
KR101966284B1 (ko) * 2017-06-16 2019-04-08 성균관대학교 산학협력단 상태 기반 포워딩을 수행하는 네트워크에서의 능동적인 요청 패킷 관리 장치 및 그 방법
CN109309934B (zh) * 2017-07-27 2021-01-15 华为技术有限公司 一种拥塞控制方法及相关设备
CN108011780B (zh) * 2017-12-01 2019-01-22 北京百度网讯科技有限公司 一种数据传输速率测量方法、装置、设备和计算机可读介质
KR102044455B1 (ko) * 2018-01-03 2019-11-13 중앙대학교 산학협력단 사물인터넷 저전력 멀티홉 무선 네트워크를 위한 tcp 보조 방법 및 장치
CN111886875B (zh) * 2018-03-27 2021-12-07 英国电讯有限公司 一种通过网络传送媒体内容的方法及服务器
KR102094988B1 (ko) * 2018-08-31 2020-03-30 연세대학교 산학협력단 다중경로 전송제어프로토콜을 위한 혼잡 윈도우 제어 장치 및 방법
US10732900B2 (en) * 2018-10-24 2020-08-04 Western Digital Technologies, Inc. Bounded latency and command non service methods and apparatus
KR102139378B1 (ko) * 2018-11-20 2020-07-29 울산과학기술원 혼잡 제어 방법 및 장치
US11212227B2 (en) * 2019-05-17 2021-12-28 Pensando Systems, Inc. Rate-optimized congestion management
US10999206B2 (en) * 2019-06-27 2021-05-04 Google Llc Congestion control for low latency datacenter networks
US11190448B2 (en) * 2019-11-26 2021-11-30 Verizon Patent And Licensing Inc. Transport congestion control optimization based on network context
CN113518040B (zh) * 2021-04-30 2022-12-09 东北大学 一种面向时延敏感业务的多径耦合拥塞控制方法
US20220103484A1 (en) * 2021-12-08 2022-03-31 Intel Corporation Congestion control

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6643259B1 (en) * 1999-11-12 2003-11-04 3Com Corporation Method for optimizing data transfer in a data network
US7310682B2 (en) * 2004-01-08 2007-12-18 Lsi Corporation Systems and methods for improving network performance
JP5020076B2 (ja) * 2004-07-29 2012-09-05 デル・プロダクツ・エル・ピー 低頻度ackのシステムに適した高性能tcp
US8340099B2 (en) 2009-07-15 2012-12-25 Microsoft Corporation Control of background data transfers
US8639835B2 (en) 2010-11-29 2014-01-28 Verizon Patent And Licensing Inc. TCP window size performance optimization in wireless networks
US10547555B2 (en) 2011-10-04 2020-01-28 North Carolina State University Methods, systems, and computer readable media for reducing Wi-Fi scanning using cellular network to Wi-Fi access point mapping information
KR102016446B1 (ko) 2011-12-28 2019-10-21 씨디에프 케 유안 지연이 큰 네트워크들에 대한 tcp 혼잡 제어
US20140281018A1 (en) 2013-03-13 2014-09-18 Futurewei Technologies, Inc. Dynamic Optimization of TCP Connections
US9929956B2 (en) * 2015-02-26 2018-03-27 Citrix Systems, Inc. System for bandwidth optimization with initial congestion window determination
CN105991462B (zh) * 2015-03-02 2019-05-28 华为技术有限公司 传输控制协议tcp数据包的发送方法、发送装置和系统

Also Published As

Publication number Publication date
KR20160144257A (ko) 2016-12-16
US20180159778A1 (en) 2018-06-07
US10374958B2 (en) 2019-08-06
WO2016200154A1 (ko) 2016-12-15

Similar Documents

Publication Publication Date Title
KR102363534B1 (ko) 통신 시스템에서 tcp 기반의 전송 제어 방법 및 장치
US9838325B2 (en) Receiver-based methods, systems, and computer readable media for controlling TCP sender behavior in mobile communications networks with large buffer sizes
US9548936B2 (en) Method and system for improved TCP performance over mobile data networks
US7706269B2 (en) Method, system and device for controlling a transmission window size
CN109309934B (zh) 一种拥塞控制方法及相关设备
US10594612B2 (en) Threshold for reduced latency mechanisms
US10911359B2 (en) Transmit data volume control device, method, and recording medium
US9167473B2 (en) Communication processing method, apparatus and gateway device
US9860182B2 (en) Data transmission device, data transmission method, and program therefor
US20170366374A1 (en) Gateway apparatus and control method thereof
WO2018177014A1 (zh) 一种调整终端发送数据的速率的方法及装置
KR102318284B1 (ko) 데이터 전송 경로의 혼잡 탐지 방법 및 장치
US11871265B2 (en) Method and an electronic device for dynamically controlling TCP congestion window
US20180176136A1 (en) TCP Bufferbloat Resolution
US10952102B2 (en) Method and apparatus for controlling data transmission speed in wireless communication system
JP4328794B2 (ja) 通信システム、通信装置、及び送信制御方法
KR20180096760A (ko) 데이터 전송 방법 및 네트워크 장치
Liu et al. Mobile accelerator: A new approach to improve TCP performance in mobile data networks
US11785442B2 (en) Data transport network protocol based on real time transport network congestion conditions
JP2011176693A (ja) 移動体無線通信装置、tcpフロー制御装置及びその方法
KR102176176B1 (ko) 전송 제어 프로토콜을 이용하는 무선 네트워크에서 혼잡 제어 방법 및 장치
JP6727107B2 (ja) パケット通信システム及びその輻輳制御方法、並びに、輻輳制御プログラム
Chang et al. Cross-layer-based adaptive TCP algorithm for cloud computing services in 4G LTE-A relaying communication
Diarra et al. Cross-layer Loss Discrimination Algorithms for MEC in 4G networks
KR101515595B1 (ko) 무선망 전송 품질 향상을 위한 tcp 패킷 전송 최적화 시스템 및 방법

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right