KR20180125741A - 통신 시스템에서 데이터 전송을 제어하기 위한 장치 및 방법 - Google Patents

통신 시스템에서 데이터 전송을 제어하기 위한 장치 및 방법 Download PDF

Info

Publication number
KR20180125741A
KR20180125741A KR1020170060412A KR20170060412A KR20180125741A KR 20180125741 A KR20180125741 A KR 20180125741A KR 1020170060412 A KR1020170060412 A KR 1020170060412A KR 20170060412 A KR20170060412 A KR 20170060412A KR 20180125741 A KR20180125741 A KR 20180125741A
Authority
KR
South Korea
Prior art keywords
network
threshold
speed
setting
application
Prior art date
Application number
KR1020170060412A
Other languages
English (en)
Other versions
KR102359274B1 (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 KR1020170060412A priority Critical patent/KR102359274B1/ko
Priority to US15/981,686 priority patent/US10972931B2/en
Publication of KR20180125741A publication Critical patent/KR20180125741A/ko
Application granted granted Critical
Publication of KR102359274B1 publication Critical patent/KR102359274B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/0231Traffic management, e.g. flow control or congestion control based on communication conditions
    • H04W28/0236Traffic management, e.g. flow control or congestion control based on communication conditions radio quality, e.g. interference, losses or delay
    • 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/29Flow control; Congestion control using a combination of thresholds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0823Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
    • H04L41/0826Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability for reduction of network costs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • H04L43/0829Packet loss
    • H04L43/0841Round trip packet loss
    • 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/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2475Traffic characterised by specific attributes, e.g. priority or QoS for supporting traffic characterised by the type of applications
    • 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
    • H04L67/28
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • H04L43/0829Packet loss
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • 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
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/0273Traffic management, e.g. flow control or congestion control adapting protocols for flow control or congestion control to wireless environment, e.g. adapting transmission control protocol [TCP]

Abstract

본 개시는 LTE(Long Term Evolution)와 같은 4G(4th generation) 통신 시스템 이후 보다 높은 데이터 전송률을 지원하기 위한 5G(5th generation) 또는 pre-5G 통신 시스템에 관련된 것이다. 본 개시의 다양한 실시 예들에 따르면, 통신 시스템에서 프록시(proxy) 장치의 동작 방법은, 어플리케이션의 특성, 네트워크 사용량 및 상기 네트워크의 속도 중 적어도 하나에 기반하여 데이터 송수신에 관한 임계 변수를 설정하는 과정과, 상기 임계 변수에 기반하여, 상기 네트워크와의 데이터 송수신을 제어하는 과정을 포함한다. 이때, 상기 임계 변수는, 상기 프록시 장치에서 수신 가능한 데이터량 및 상기 프록시 장치가 송신 가능한 데이터량 중 적어도 하나에 관련된다.

Description

통신 시스템에서 데이터 전송을 제어하기 위한 장치 및 방법{APPARATUS AND METHOD FOR CONTROLLING OF DATA TRANSMISSION IN COMMUNICATION SYSTEM}
본 개시(disclosure)는 일반적으로 통신 시스템에 관한 것으로, 보다 구체적으로 프록시(proxy) 환경에서 데이터 전송을 제어하기 위한 장치 및 방법에 관한 것이다.
4G(4th generation) 통신 시스템 상용화 이후 증가 추세에 있는 무선 데이터 트래픽 수요를 충족시키기 위해, 개선된 5G(5th generation) 통신 시스템 또는 pre-5G 통신 시스템을 개발하기 위한 노력이 이루어지고 있다. 이러한 이유로, 5G 통신 시스템 또는 pre-5G 통신 시스템은 4G 네트워크 이후(Beyond 4G Network) 통신 시스템 또는 LTE(Long Term Evolution) 시스템 이후(Post LTE) 시스템이라 불리어지고 있다.
높은 데이터 전송률을 달성하기 위해, 5G 통신 시스템은 초고주파(mmWave) 대역(예를 들어, 60기가(60GHz) 대역과 같은)에서의 구현이 고려되고 있다. 초고주파 대역에서의 전파의 경로손실 완화 및 전파의 전달 거리를 증가시키기 위해, 5G 통신 시스템에서는 빔포밍(beamforming), 거대 배열 다중 입출력(massive MIMO), 전차원 다중입출력(Full Dimensional MIMO, FD-MIMO), 어레이 안테나(array antenna), 아날로그 빔형성(analog beam-forming), 및 대규모 안테나(large scale antenna) 기술들이 논의되고 있다.
또한 시스템의 네트워크 개선을 위해, 5G 통신 시스템에서는 진화된 소형 셀, 개선된 소형 셀(advanced small cell), 클라우드 무선 액세스 네트워크(cloud radio access network, cloud RAN), 초고밀도 네트워크(ultra-dense network), 기기 간 통신(Device to Device communication, D2D), 무선 백홀(wireless backhaul), 이동 네트워크(moving network), 협력 통신(cooperative communication), CoMP(Coordinated Multi-Points), 및 수신 간섭제거(interference cancellation) 등의 기술 개발이 이루어지고 있다.
이 밖에도, 5G 시스템에서는 진보된 코딩 변조(Advanced Coding Modulation, ACM) 방식인 FQAM(Hybrid Frequency Shift Keying and Quadrature Amplitude Modulation) 및 SWSC(Sliding Window Superposition Coding)과, 진보된 접속 기술인 FBMC(Filter Bank Multi Carrier), NOMA(Non Orthogonal Multiple Access), 및 SCMA(Sparse Code Multiple Access) 등이 개발되고 있다.
5G는 다양한 형태의 단말들을 고려하고 있다. 예를 들어, 이동성이 낮거나 또는 이동성을 가지지 아니하는 장치가 무선망 기지국과 무선 통신을 하기 위한 고정식 무선 접속(fixed wireless access, FWA) 방식이 논의되고 있다. 고정식 무선 접속은 사무소, 가정 등 댁 내 인터넷 서비스의 연결을 위해 사용될 수 있으며, 이 경우 종전의 유선망 설치 비용 및 노력이 감소될 수 있다.
상술한 바와 같은 논의를 바탕으로, 본 개시(disclosure)는, 통신 시스템에서 데이터의 전송을 제어하기 위한 장치 및 방법을 제공한다.
또한, 본 개시는, 프록시(proxy) 환경에서 데이터 전송 지연을 방지하기 위한 장치 및 방법을 제공한다.
또한, 본 개시는, 프록시 환경에서 어플리케이션 특성 및 네트워크 사용량 중 적어도 하나를 고려하여 데이터 전송량 임계 변수 설정을 제어하기 위한 장치 및 방법을 제공한다.
또한, 본 개시는, 프록시 환경에서 프록시 장치에 연결된 네트워크 각각의 속도 차이를 고려하여 데이터 수신량 임계 변수 설정을 제어하기 위한 장치 및 방법을 제공한다.
본 개시의 다양한 실시 예들에 따르면, 통신 시스템에서 프록시(proxy) 장치의 동작 방법은, 어플리케이션의 특성, 네트워크 사용량 및 상기 네트워크의 속도 중 적어도 하나에 기반하여 데이터 송수신에 관한 임계 변수를 설정하는 과정과, 상기 임계 변수에 기반하여, 상기 네트워크와의 데이터 송수신을 제어하는 과정을 포함하고, 상기 임계 변수는, 상기 프록시 장치에서 수신 가능한 데이터량 및 상기 프록시 장치가 송신 가능한 데이터량 중 적어도 하나에 관련된다.
본 개시의 다양한 실시 예들에 따르면, 통신 시스템에서 프록시 장치는, 어플리케이션의 특성, 네트워크 사용량 및 상기 네트워크의 속도 중 적어도 하나에 기반하여 데이터 송수신에 관한 임계 변수를 설정하고, 상기 임계 변수에 기반하여, 상기 네트워크와의 데이터 송수신을 제어하는 적어도 하나의 프로세서(processor)를 포함하고, 상기 임계 변수는, 상기 프록시 장치에서 수신 가능한 데이터량 및 상기 프록시 장치가 송신 가능한 데이터량 중 적어도 하나에 관련된다.
본 개시의 다양한 실시 예들에 따른 장치 및 방법은, 프록시 환경에서 어플리케이션 및 네트워크 사용량을 고려해 데이터 전송을 제어함으로써 네트워크 사용률(utilization)을 높이며, 다양한 요구 수준의 어플리케이션을 이용하는 사용자들의 QoE(quality of experience)를 향상시킬 수 있다. 또한, 프록시 장치 양단의 서브-커넥션들의 속도 차이를 고려하여 데이터 전송을 제어함으로써 동일한 속도를 보장하면서도 지연과 지터(jitter)를 감소시킬 수 있다.
본 개시에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 개시의 다양한 실시 예들에 따른 통신 시스템을 도시한다.
도 2는 본 개시의 다양한 실시 예들에 따른 통신 시스템에서 프록시 장치의 블록 구성을 도시한다.
도 3은 본 개시의 다양한 실시 예들에 따른 통신 시스템에서 프록시 장치의 동작 방법을 도시한다.
도 4는 본 개시의 다양한 실시 예들에 따른 통신 시스템에서 전송량 임계 변수를 제어하기 위한 프록시 장치의 동작 방법을 도시한다.
도 5는 본 개시의 다양한 실시 예들에 따른 무선 통신 시스템에서 어플리케이션 특성에 따라 전송량 임계 변수를 제어하기 위한 프록시 장치의 동작 방법을 도시한다.
도 6은 본 개시의 다양한 실시 예들에 따른 무선 통신 시스템에서 손실(loss) 발생 시 네트워크 사용량에 따라 전송량 임계 변수를 제어하기 위한 프록시 장치의 동작 방법을 도시한다.
도 7은 본 개시의 다양한 실시 예들에 따른 통신 시스템에서 수신량 임계 변수를 제어하기 위한 프록시 장치의 동작 방법을 도시한다.
도 8은 본 개시의 다양한 실시 예들에 따른 무선 통신 시스템에서 서브-커넥션(sub-connection) 1 및 서브-커넥션 2의 속도 차이에 따라 수신량 임계 변수를 제어하기 위한 프록시 장치의 동작 방법을 도시한다.
도 9a는 본 개시의 다양한 실시 예들에 따른 무선 통신 시스템에서 CWND 값을 고정하는 경우 데이터 전송 지연에 대한 그래프를 도시한다.
도 9b는 본 개시의 다양한 실시 예들에 따른 무선 통신 시스템에서 CWND 값을 감소시키는 경우 데이터 전송 지연에 대한 그래프를 도시한다.
도 10a는 본 개시의 다양한 실시 예들에 따른 무선 통신 시스템에서 종래 방식에 의한 RWND 제어에 따른 데이터 전송 지연에 대한 그래프를 도시한다.
도 10b는 본 개시의 다양한 실시 예들에 따른 무선 통신 시스템에서 프록시 장치 양단의 속도 차이를 고려한 RWND 제어에 따른 데이터 전송 지연에 대한 그래프를 도시한다.
본 개시에서 사용되는 용어들은 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 다른 실시 예의 범위를 한정하려는 의도가 아닐 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 용어들은 본 개시에 기재된 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가질 수 있다. 본 개시에 사용된 용어들 중 일반적인 사전에 정의된 용어들은, 관련 기술의 문맥상 가지는 의미와 동일 또는 유사한 의미로 해석될 수 있으며, 본 개시에서 명백하게 정의되지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다. 경우에 따라서, 본 개시에서 정의된 용어일지라도 본 개시의 실시 예들을 배제하도록 해석될 수 없다.
이하에서 설명되는 본 개시의 다양한 실시 예들에서는 하드웨어적인 접근 방법을 예시로서 설명한다. 하지만, 본 개시의 다양한 실시 예들에서는 하드웨어와 소프트웨어를 모두 사용하는 기술을 포함하고 있으므로, 본 개시의 다양한 실시 예들이 소프트웨어 기반의 접근 방법을 제외하는 것은 아니다.
이하 본 개시는 통신 시스템에서 데이터 전송을 제어하기 위한 장치 및 방법에 관한 것이다. 구체적으로, 본 개시는 프록시(proxy) 환경에서 데이터 전송 지연 완화를 위해 전송량 혹은 수신량 임계 변수를 제어하기 위한 기술을 설명한다.
이하 설명에서 사용되는 네트워크 객체(network entity)들을 지칭하는 용어, 제어 정보를 지칭하는 용어(예: CWND(congestion window), RWND(receiver window) 등), 장치의 구성 요소를 지칭하는 용어, 통신 기술을 지칭하는 용어 등은 설명의 편의를 위해 예시된 것이다. 따라서, 본 개시가 후술되는 용어들에 한정되는 것은 아니며, 동등한 기술적 의미를 가지는 다른 용어가 사용될 수 있다.
또한, 본 개시는, 5G(5th generation) 시스템과 Wi-Fi(wireless fidelity) 시스템을 이용하여 다양한 실시 예들을 설명하지만, 이는 설명을 위한 예시일 뿐이다. 본 개시의 다양한 실시 예들은, 다른 통신 시스템에서도, 용이하게 변형되어 적용될 수 있다.
도 1은 본 개시의 다양한 실시 예들에 따른 통신 시스템을 도시한다. 도 1을 참고하면, 시스템은 프록시 장치 110, AP(access point) 120, IP(internet protocol) 전화(phone) 130, IP TV 140, 모바일 장치(mobile device) 150, 기지국 160 및 서버 170을 포함한다.
프록시 장치 110은 중계 장치로서, 하나 이상의 클라이언트 장치들(예: IP 전화 130, IP TV 140, 모바일 장치 150 등)로부터 요청을 받아 서버(예: 서버 170)로부터의 데이터 전송을 중계하는 장치를 의미한다. 프록시 장치 110은 서버로의 자원 요청을 중계하여, 분산 시스템의 구조를 단순화하고 캡슐화하여 서비스의 복잡도를 줄이는 역할을 할 수 있다. 이에 따라, 프록시 장치 110은 IP 전화 130, IP TV 140, 모바일 장치 150 등이 서버 170을 통한 다양한 어플리케이션 서비스(예: AR(augmented reality), VR(virtual reality), 게임, 파일 다운로드 등)를 제공 받기 위한 패킷 송신 및 수신을 중계할 수 있다. 다양한 실시 예들에서, 프록시 장치 110은 고정된(stationary) 장치일 수 있다. 또한, 프록시 장치 110은 기지국 160으로부터 무선 접속을 제공 받는 고정식 무선 접속(fixed wireless access, FWA) 장치일 수 있다. 다양한 실시 예들에 따르면, 댁 내 인터넷 제공을 기존 유선망에서 무선망(예: LTE 무선 접속 망, 5G 무선 접속 망 등)으로 대체하는 환경에서, 프록시 장치 110은 무선 접속 망의 기지국과 무선 통신을 하기 위한 댁 내 장치일 수 있다. 프록시 장치 110은, 상술한 장치들 중 둘 이상의 기능들을 결합한 장치일 수 있다. 다양한 실시 예들에 따라, 프록시 장치 110은 하나 이상의 클라이언트 장치들(예: IP 전화 130, IP TV 140, 모바일 장치 150 등)에 관한 어플리케이션 특성(예: 지연 민감한(delay-sensitive) 서비스인지 여부), 네트워크 사용량 및 프록시 장치 110 양단의 네트워크 속도 차이 중 적어도 하나에 기반하여 데이터 전송의 임계 변수를 제어함으로써 데이터 전송을 제어할 수 있다.
AP 120은, 예를 들어 Wi-Fi(wireless fidelity) 접속 망을 구성하는 AP로, 프록시 장치 110와 IP 전화 130, IP TV 140 및 모바일 장치 150 사이의 데이터 트래픽을 처리할 수 있다. 다양한 실시 예들에 따라, AP 120은 프록시 장치 110의 일부 기능 블록으로 포함될 수 있다. 일 실시 예에 따라, AP 120 및 프록시 장치 110가 별도의 장치들로 구현된 경우, AP 120 및 프록시 장치 110 간 연결은 무선 인터페이스(예: WiFi) 또는 유선 인터페이스에 기반할 수 있다.
IP 전화 130, IP TV 140 및 모바일 장치 150은 각각 음성 통화, 인터넷 망을 이용하여 제공되는 양방향 텔레비전 서비스, 음성/영상 통화 등의 서비스를 제공하는 댁 내 클라이언트 장치들이다. IP 전화 130, IP TV 140 및 모바일 장치 150은 AP 120을 통해 프록시 장치 110에 연결되며, 프록시 장치 110을 통해 서버 170으로부터 다양한 어플리케이션 서비스를 위한 데이터를 송수신할 수 있다.
기지국 160은 프록시 장치 110에게 무선 접속을 제공한다. 기지국 160은 접속 망을 구성하는 객체(entity)들 중 하나로서, 일정 지리적 범위를 포함하는 커버리지(coverage)를 가진다. 기지국 160은 기지국(base station) 외에 '액세스 포인트(access point, AP)', '이노드비 (evolved nodeB, eNB), '5G 노드(5th generation node)', '무선 포인트(wireless point)', '송수신 포인트(transmission/reception point, TRP) 또는 이와 동등한 기술적 의미를 가지는 다른 용어로 지칭될 수 있다.
서버 170은 다양한 어플리케이션 서비스를 제공하기 위한 장치이다. 서버 170은 기지국 160과 독립적으로 운용될 수 있다. 서버 170은 IP를 기반으로, 음성, 오디오, 비디오, 데이터 등의 멀티미디어(multimedia) 서비스를 제공할 수 있다. 이러한 서비스에는 VR, AR 및 게임 등이 포함될 수 있다. 하나 이상의 클라이언트 장치들(예: IP 전화 130, IP TV 140, 모바일 장치 150 등)이 프록시 장치 110을 통해 서버 170으로 자원 요청을 전송할 수 있다.
도 2는 본 개시의 다양한 실시 예들에 따른 통신 시스템에서 프록시 장치의 블록 구성을 도시한다. 도 2는 프록시 장치 110의 구성으로 이해될 수 있다. 이하 사용되는 '…부', '…기' 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어, 또는, 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. 도 2에 도시된 바와 같이, 프록시 장치는 통신부 210, 저장부 220, 제어부 230을 포함한다.
통신부 210은 네트워크 내 다른 노드들과 신호를 송신 및 수신하거나, 서로 다른 네트워크의 노드들 간에 신호를 송신 및 수신하기 위한 적어도 하나의 인터페이스를 제공한다. 즉, 통신부 210은 프록시 장치에서 다른 노드, 예를 들어, 접속 노드, 기지국, 코어망 등으로 송신되는 비트열을 물리적 신호로 변환하고, 다른 노드로부터 수신되는 물리적 신호를 비트열로 변환한다. 일 실시 예에 따라, 통신부 210는 둘 이상의 통신 인터페이스들을 지원할 수 있다. 예를 들어, 통신부 210는 외부 서버와의 통신을 위한 무선 접속 망에 접속하기 위한 제1 인터페이스, 특정 공간(예: 댁 내)에 인터넷 연결을 제공하기 위한 제2 인터페이스를 지원할 수 있다. 제1 인터페이스는 무선 인터페이스로, 제2 인터페이스는 유선 또는 무선 인터페이스로 구현될 수 있다.
예를 들어, 통신부 210은, 무선 인터페이스로서, 무선 채널을 통해 신호를 송수신하기 위한 기능들을 수행하는 무선 통신부(미도시)를 포함할 수 있다. 무선 통신부는 시스템의 물리 계층 규격에 따라 기저대역 신호 및 비트열 간 변환 기능을 수행한다. 예를 들어, 데이터 송신 시, 무선 통신부는 송신 비트열을 부호화 및 변조함으로써 복소 심벌들을 생성한다. 또한, 데이터 수신 시, 무선 통신부는 기저대역 신호를 복조 및 복호화를 통해 수신 비트열을 복원한다. 또한, 무선 통신부는 기저대역 신호를 RF(radio frequency) 대역 신호로 상향변환한 후 안테나를 통해 송신하고, 안테나를 통해 수신되는 RF 대역 신호를 기저대역 신호로 하향변환한다. 이를 위해, 무선 통신부는 송신 필터, 수신 필터, 증폭기, 믹서(mixer), 오실레이터(oscillator), DAC(digital to analog convertor), ADC(analog to digital convertor) 등을 포함할 수 있다. 또한, 무선 통신부는 다수의 송수신 경로(path)들을 포함할 수 있다. 나아가, 무선 통신부는 다수의 안테나 요소들(antenna elements)로 구성된 적어도 하나의 안테나 어레이(antenna array)를 포함할 수 있다. 하드웨어의 측면에서, 무선 통신부는 디지털 유닛(digital unit) 및 아날로그 유닛(analog unit)으로 구성될 수 있으며, 아날로그 유닛은 동작 전력, 동작 주파수 등에 따라 다수의 서브 유닛(sub-unit)들로 구성될 수 있다. 다양한 실시 예들에 따라, 프록시 장치는 무선 통신부를 통해 무선 접속 망의 기지국과 연동될 수 있다.
통신부 210은 상술한 바와 같이 신호를 송신 및 수신한다. 이에 따라, 통신부 210은 ‘송신부’, ‘수신부’ 또는 ‘송수신부’로 지칭될 수 있다. 또한, 이하 설명에서 무선 또는 유선 채널을 통해 수행되는 송신 및 수신은 통신부 210에 의해 상술한 바와 같은 처리가 수행되는 것을 포함하는 의미로 사용된다.
저장부 220은 프록시 장치의 동작을 위한 기본 프로그램, 응용 프로그램, 설정 정보 등의 데이터를 저장한다. 저장부 220은 휘발성 메모리, 비휘발성 메모리 또는 휘발성 메모리와 비휘발성 메모리의 조합으로 구성될 수 있다. 그리고, 저장부 220은 제어부 230의 요청에 따라 저장된 데이터를 제공한다.
제어부 230은 프록시 장치의 전반적인 동작들을 제어한다. 예를 들어, 제어부 230은 통신부 210을 통해 신호를 송신 및 수신한다. 또한, 제어부 230은 저장부 220에 데이터를 기록하고, 읽는다. 이를 위해, 제어부 230은 적어도 하나의 프로세서(processor) 또는 마이크로(micro) 프로세서를 포함하거나, 또는, 프로세서의 일부일 수 있다. 또한, 통신부 210의 일부 및 제어부 230은 CP(communication processor)라 지칭될 수 있다. 특히, 제어부 230은 후술되는 다양한 실시 예들에 따라 프록시 장치에서 데이터 전송량 임계 변수 또는 클라이언트 장치(예: IP 전화 130, IP TV 140, 모바일 장치 150 등)의 데이터 수신량 임계 변수를 설정하고, 데이터 전송을 제어할 수 있다. 이를 위해, 제어부 230은 파라미터 결정부 231 및 전송 제어부 233을 포함할 수 있다. 여기서, 파라미터 결정부 231 및 전송 제어부 233은 저장부 220에 저장된 명령어 집합 또는 코드로서, 적어도 일시적으로 제어부 230에 상주된(resided) 명령어/코드 또는 명령어/코드를 저장한 저장 공간이거나, 또는, 제어부 230을 구성하는 회로(circuitry)의 일부일 수 있다. 예를 들어, 상기 제어부 230은 프록시 장치가 후술하는 다양한 실시 예들에 따르는 절차를 수행하도록 제어한다.
5G 표준화 논의가 본격화되면서, 기가비트(giga bit)급 속도를 통해 자율 주행차량과 사물 인터넷, 무선 광대역 분야의 혁신이 예고되고 있다. 특히, 5G의 빠른 속도를 바탕으로 댁 내의 인터넷 서비스를 5G FWA를 통해 제공함으로써, 집집마다 유선망 설치를 위한 과다 비용을 줄이면서도 빠른 속도를 이용하여 다양한 서비스에 대한 사용자 체감 품질을 높이는 방안이 논의되고 있다. 또한, 5G 시스템에서, VR 및 AR 등 지연(delay)에 민감한 서비스와 인터랙티브(interactive) 서비스에 대한 요구가 있다. 따라서, 5G의 이러한 실시간성 서비스들에 대한 사용자 QoE(quality of experience)를 향상시키기 위해서는 속도뿐 아니라 지연에 대한 고려도 필요하다.
5G FWA 환경에서는 잦은 홈(home) Wi-Fi 손실로 인해 불필요한 엔드 투 엔드(end-to-end) 속도 저하를 유발하게 되므로, 5G 대역폭을 충분히 이용하기 위해 TCP(Transmission Control Protocol) 프록시의 필요성이 높아지고 있다. 그러나, 기존 TCP 방식은 Wi-Fi 손실을 정체(congestion)로 판단하고, 속도 저하를 유발하게 된다. 또한, 기존 TCP 방식은 어플리케이션에 대한 특성 고려 없이 공격적으로(aggressively) 데이터를 전송하고, 서버와 프록시 구간 및 프록시와 단말 구간 사이의 속도 차이의 고려 없이 데이터를 전송함으로써, 데이터 전송 지연과 지터(jitter)를 악화 시키는 결과를 초래한다. 예를 들어, 한 실험에 따르면, 미국의 홈 Wi-Fi 평균 TCP 손실율(loss rate)은 0.17%로 측정되었고, 0.1% 이상 손실 비율은 22.1%로 측정되었다. 이때, 공격적인 전송으로 인해 한 홉(hop)에서도 RTT(round trip time)이 150ms까지 치솟는 것으로 측정되었다. 이러한 Wi-Fi 손실이 빈번하게 일어나는 환경에서 공격적인 전송을 지향하는 기존 TCP 방식은 속도 및 지연을 심각하게 유발할 수 있다.
상술한 바와 같이, 5G에서는 VR, AR, 게임 등의 지연에 민감하고 상호작용을 요구하는 서비스들에 대한 사용자의 QoE를 향상시키기 위해, 단순히 속도를 향상시키는 문제뿐만 아니라 응답 지연을 감소시키고 적절한 지연 수준을 유지하는 것이 중요한 문제로 대두되고 있다. 따라서, 본 개시는 5G FWA에서 TCP 프록시 환경에서 최적화된 TCP 설계로 사용자 QoE를 향상시키는 방안을 제시하고자 한다.
다만, 본 개시는 이러한 5G서비스 환경이나, Wi-Fi 환경에만 제한 되는 것은 아니다. 다른 실시 예들에 따라, 본 개시에서 제안하는 데이터 전송을 제어하는 방법은, 데이터 전송 지연과 지터를 감소시켜야 하는 지연에 민감한 서비스를 제공하는 프록시 환경을 포함하는 모든 시스템에 적용될 수 있다.
상술한 바와 같이, 본 개시는 데이터 전송 지연과 지터를 감소 시키기 위한 데이터 전송 제어 방법을 제안한다. 본 개시의 다양한 실시 예에 따라, 프록시 환경에서 전송 가능한 데이터량을 설정하고 데이터 전송을 제어하는 동작들은 도 3 내지 도 8과 같이 수행될 수 있다.
도 3은 본 개시의 다양한 실시 예들에 따른 통신 시스템에서 프록시 장치의 동작 방법을 도시한다. 도 3은 프록시 장치 110의 동작 방법을 예시한다.
도 3을 참고하면, 301 단계에서, 프록시 장치는 어플리케이션 특성, 네트워크 사용량 및 데이터 속도 중 적어도 하나에 기반하여 전송 가능한 데이터량을 설정한다. 예를 들어, 프록시 장치는 현재 플로우(flow)를 트리거한(trigger) 어플리케이션의 특성(예: 지연 민감 여부), 네트워크 사용량(예: 플로우들의 속도 총합 등) 및 프록시 장치 양단의 각 네트워크의 데이터 속도 중 적어도 하나에 기반하여, 전송 가능한 데이터량에 관한 변수를 설정할 수 있다. 이때, 전송 가능한 데이터량에 관한 변수는 프록시 장치의 전송량 임계치에 관한 변수 또는 클라이언트 장치(예: IP 전화 130, IP TV 140, 모바일 장치 150 등)의 수신량 임계치에 관한 변수 중 적어도 하나일 수 있다.
이후, 303 단계에서, 프록시 장치는 설정된 전송 가능한 데이터량에 기반하여 데이터 송수신을 수행한다. 일 실시 예에 따라, 프록시 장치는 설정된 프록시 장치의 전송량 임계치에 관한 변수 또는 클라이언트 장치(예: IP 전화 130, IP TV 140, 모바일 장치 150 등)의 수신량 임계치에 관한 변수 중 적어도 하나에 기반하여 데이터 송수신을 수행할 수 있다. 일 실시 예에 따라, 프록시 장치는 전송량 임계치에 관한 변수에 기반하여 서버로부터 수신된 데이터의 클라이언트 장치로의 전송을 제어할 수 있다. 다른 실시 예에 따라, 프록시 장치는 클라이언트 장치의 수신량 임계치에 관한 변수를 서버 장치(예: 서버 170)로 전송하고, 수신량 임계치에 기반하여 서버 장치로부터 수신된 데이터를 클라이언트 장치로 전송할 수 있다.
도 4는 본 개시의 다양한 실시 예들에 따른 통신 시스템에서 전송량 임계 변수를 제어하기 위한 프록시 장치의 동작 방법을 도시한다. 도 4는 프록시 장치 110의 동작 방법을 예시한다.
도 4를 참고하면, 401 단계에서, 프록시 장치는 어플리케이션 특성 및 네트워크 사용량 중 적어도 하나에 기반하여 전송량 임계 변수를 설정한다. 예를 들어, 프록시 장치는 현재 플로우(flow)를 트리거한 어플리케이션의 특성(예: 지연 민감 여부)과 네트워크 사용량(예: 플로우들의 속도 총합 등) 중 적어도 하나에 기반하여, 프록시 장치가 ACK(acknowledgement) 수신 없이 전송 가능한, 전송량 임계치에 관한 변수를 설정할 수 있다. 예를 들어, 전송량 임계 변수는 ‘윈도우’로, 전송량 임계 변수의 값은 ‘윈도우 크기’로 지칭될 수 있다.
이후, 403 단계에서, 프록시 장치는 설정된 전송량 임계 변수에 기반하여 어플리케이션에 대한 데이터 송수신을 수행한다. 일 실시 예에 따라, 프록시 장치는 설정된 프록시 장치의 전송량 임계치에 관한 변수에 기반하여 데이터 송수신을 수행할 수 있다. 예를 들어, 프록시 장치는 서버로부터 수신된 데이터를 설정된 전송량 임계치보다 작은 범위 내에서 클라이언트 장치로 전송하도록 제어할 수 있다.
일 실시 예에 따라, TCP 프록시 환경에서 기존에는 TCP CUBIC 방식이 Linux의 디폴트 TCP 방식으로 사용되고 있다. TCP CUBIC은 Wi-Fi 손실을 정체 손실로 판단하고, 도 4를 참고하여 설명한 전송량 임계 변수의 일 예인 CWND를 감소시킴으로써 불필요하게 속도를 저하시킬 수 있다. 여기서 CWND란, ACK(acknowledgement)를 수신하기 전까지 네트워크로 전송할 수 있는 TCP 데이터의 양의 한계를 의미한다. 또한, TCP CUBIC은 공격적인 전송으로 지연과 지터를 악화 시킬 수 있다.
이와 관련하여 개선된 방식으로 손실 발생 시에도 CWND를 감소 시키지 않는 방식이 제안되었고, 이러한 방식을 통해 처리율(throughput)의 감소를 방지할 수 있다. 제안된 방식은 처리율 면에서 기존 방식보다 월등한 향상을 보였으나, 어떤 값으로 CWND를 고정해야 하는지에 대한 구체적인 방안의 제시가 없다. CWND의 변화에 따라 속도 및 지연간 트레이드 오프(trade-off)가 존재하기 때문에, 지연에 민감한 어플리케이션의 경우 CWND를 높게 설정하면 사용자 QoE가 감소하게 된다. 그러나, 제안된 분산 알고리즘(distributed algorithm)으로 속도 및 지연 간의 트레이드 오프를 고려하여 전송을 최적화하기는 불가능하다. 제안된 방식은 다른 클라이언트 장치들에서의 트래픽(traffic) 혹은 당해 클라이언트 장치 내의 다른 TCP 플로우에서의 트래픽에 대한 고려가 없다. CWND가 큰 경우, 손실 발생 시 손실 패킷 수가 많아지게 되는데, 다른 트래픽이 없으면 큰 문제가 되지 않으나, 다른 트래픽이 존재하는 경우 그 트래픽의 전송을 방해하므로, 총 속도는 낮아지게 된다.
다른 방안으로, 어플리케이션별 클래스(class)를 구축하여 클래스에 따라 라우팅을 적용하는 방식이 제안되었다. 제안된 방식은 어플리케이션에 대한 대역폭(bandwidth) 조절만 수행하므로 전송 계층과 관련하여 지연에 대한 고려가 없다. 즉, 속도보다 지연이 중요한 어플리케이션에 대한 고려가 없어 사용자 QoE 향상에 한계가 있다. 또한, 제안된 방식은 손실 발생 시에 대한 언급 없이, 최소 대역폭 조절을 위해 패킷을 드롭(drop)한다. 따라서, 제안된 방식에 의해 불필요한 속도 저하가 발생하여 전체 속도의 저하가 발생할 수 있다.
상술한 바와 같이, 종래의 CWND를 고정시키거나 어플리케이션에 대한 대역폭만을 조절하는 방식의 문제를 개선하고, 사용자 QoE 향상을 위한 새로운 방안이 요구되고 있다. 본 개시는 특히, 서버/단말/어플리케이션의 수정 없이 프록시 장치의 수정만으로 사용자 QoE 향상을 위한 전송 계층 최적화 방안을 제시하여 기술의 범용성을 높이고자 한다. 본 개시의 다양한 실시 예들에 따라, 프록시 장치의 전송량 임계 변수를 설정하는 보다 상세한 절차는 도 5 내지 도 6과 같이 수행될 수 있다.
도 5는 본 개시의 다양한 실시 예들에 따른 무선 통신 시스템에서 어플리케이션 특성에 따라 전송량 임계 변수를 제어하기 위한 프록시 장치의 동작 방법을 도시한다. 도 5는 프록시 장치 110의 동작 방법을 예시한다.
도 5를 참고하면, 501 단계에서, 프록시 장치는 어플리케이션의 요구/선호 대역폭이 존재하는지 판단한다. 일 실시 예에 따라, 프록시 장치는 시작된 플로우를 트리거한 어플리케이션의 요구/선호 속도가 존재하는 지 확인한다. 요구 속도란, 원활한 어플리케이션 수행을 위해 필수적으로 보장되어야 하는 속도를 의미한다. 선호 속도란, 어플리케이션 수행 시 필수적이지는 않지만, 그 속도 이상이면 사용자에게 더 만족스러운 서비스를 제공할 수 있는 속도를 의미한다. 예를 들어, 스트리밍(streaming) 어플리케이션에서 속도에 따라서 480p, 720p, 1080p의 화질을 제공해줄 수 있는 경우, 480p를 보장하는 속도가 요구 속도가 되며, 720p 이상을 가능하게 하는 속도가 선호 속도가 될 수 있다. 어플리케이션의 요구/선호 대역폭이 존재하는 경우, 프록시 장치는 503 단계로 진행한다. 반면, 어플리케이션의 요구/선호 대역폭이 존재하지 않는 경우, 프록시 장치는 515 단계로 진행한다.
어플리케이션의 요구/선호 대역폭이 존재하는 경우, 503 단계에서, 프록시 장치는 요구/선호 대역폭을 만족할 수 있는지 판단한다. 예를 들어, 프록시 장치는 현재 상태에서 플로우를 트리거한 어플리케이션의 요구/선호 속도를 만족시킬 수 있는지 확인한다. 어플리케이션의 요구/선호 대역폭을 만족시킬 수 있는 경우, 프록시 장치는 505 단계로 진행한다. 반면, 어플리케이션의 요구/선호 대역폭을 만족시킬 수 없는 경우, 프록시 장치는 507 단계로 진행한다.
어플리케이션의 요구/선호 대역폭을 만족시킬 수 있는 경우, 505 단계에서, 프록시 장치는 CWND를 요구/선호 속도 도달 시점에서의 전송중인 데이터량(bytes-in-flight) 값으로 설정할 수 있다. 전송중인 데이터량은 특정 시점에 프록시 장치가 전송한 데이터 중 ACK를 수신하지 못한 데이터의 바이트 수를 의미한다. 요구/선호 속도 도달 시점의 전송중인 데이터량을 CWND로 설정함으로써 프록시 장치는 요구/선호 속도를 제공할 수 있다.
어플리케이션의 요구/선호 대역폭을 만족시킬 수 없는 경우, 507 단계에서, 프록시 장치는 어플리케이션이 지연에 민감한지 결정한다. 예를 들어, 어플리케이션 장치는 현재 플로우를 트리거한 어플리케이션이 지연에 민감한지(예: 음성/영상 통화, VR, AR, 게임 등) 추가로 확인한다. 어플리케이션이 지연에 민감한 경우, 프록시 장치는 509 단계로 진행한다. 반면 어플리케이션이 지연에 민감하지 않은 경우, 프록시 장치는 513 단계로 진행한다.
어플리케이션이 지연에 민감한 경우, 509 단계에서, 프록시 장치는 임계치를 미리 정의된 Threshsensitive - tput 값으로 설정한다. 이 경우는, 어플리케이션의 요구/선호 대역폭을 만족시킬 수 없으면서 어플리케이션이 지연에 민감한 경우이므로, 미리 정의된 Threshsensitive - tput 값은 속도와 지연을 모두 고려하여 결정될 수 있다. 일 실시 예에 따라, Threshsensitive - tput 값은 속도와 지연을 모두 고려한 실험적인 값에 의해 결정될 수 있다.
이후, 511 단계에서, 프록시 장치는 CWND를 지연 증가량 대비 속도 증가량이 임계치 도달 시점에서의 전송중인 데이터량 값으로 설정할 수 있다. 전술한 바와 같이, 전송중인 데이터량은 특정 시점에 프록시 장치가 전송한 데이터 중 ACK를 수신하지 못한 데이터의 바이트 수를 의미한다. 속도와 지연을 모두 고려하여 결정된 임계치 도달 시점의 전송중인 데이터량을 CWND로 설정함으로써, 프록시 장치는 속도와 지연 사이의 트레이드 오프를 고려하여 데이터 전송을 제어할 수 있다.
어플리케이션이 지연에 민감하지 않은 경우, 513 단계에서, 프록시 장치는 CWND를 속도 최대치 도달 시점에서의 전송중인 데이터량 값으로 설정할 수 있다. 어플리케이션의 요구/선호 대역폭이 존재하지만 이를 만족시킬 수 없는 경우로서, 어플리케이션이 지연에 민감하지 않으므로, 프록시 장치는 속도가 최대치가 되는 시점의 전송중인 데이터량을 CWND로 설정할 수 있다. 이를 통해, 프록시 장치는 어플리케이션에 대해 가능한 최대 속도를 제공할 수 있도록 데이터 전송을 제어할 수 있다.
어플리케이션의 요구/선호 대역폭이 존재하지 않는 경우, 515 단계에서, 프록시 장치는 어플리케이션이 지연에 민감한지 결정한다. 예를 들어, 어플리케이션 장치는 현재 플로우를 트리거한 어플리케이션이 지연에 민감한지(예: 음성/영상 통화, VR, AR, 게임 등) 추가로 확인한다. 어플리케이션이 지연에 민감한 경우, 프록시 장치는 517 단계로 진행한다. 반면 어플리케이션이 지연에 민감하지 않은 경우, 프록시 장치는 519 단계로 진행한다.
어플리케이션이 지연에 민감한 경우, 517 단계에서, 프록시 장치는 임계치를 미리 정의된 Threshsensitive 값으로 설정한다. 이 경우는, 어플리케이션의 요구/선호 대역폭은 없으나 어플리케이션이 지연에 민감한 경우이므로, 미리 정의된 Threshsensitive 값은 지연을 우선 고려하여 결정될 수 있다. 일 실시 예에 따라, Threshsensitive 값은 지연을 우선적으로 고려한 실험적인 값에 의해 결정될 수 있다. 이후, 프록시 장치는 511 단계로 진행하여 CWND를 지연 증가량 대비 속도 증가량이 임계치 도달 시점에서의 전송중인 데이터량 값으로 설정할 수 있다. 지연을 우선 고려하여 결정된 임계치 도달 시점의 전송중인 데이터량을 CWND로 설정함으로써, 프록시 장치는 지연을 우선적으로 감소시키는 방향으로 데이터 전송을 제어할 수 있다.
어플리케이션이 지연에 민감하지 않은 경우, 519 단계에서, 프록시 장치는 임계치를 미리 정의된 Threshinsensitive 값으로 설정한다. 이 경우는, 어플리케이션의 요구/선호 대역폭은 없고 어플리케이션이 지연에 민감하지 않은 경우이므로, 미리 정의된 Threshinsensitive 값은 속도를 우선 고려하여 결정될 수 있다. 다만, 속도를 지나치게 높게 설정하면 다른 어플리케이션 플로우들에 영향을 미쳐 전체로는 속도/지연 문제를 악화 시킬 수 있다. 일 실시 예에 따라, Threshinsensitive 값은 속도를 우선적으로 고려하되, 다른 기기/어플리케이션 플로우들을 고려한 실험적인 값에 의해 결정될 수 있다. 이후, 프록시 장치는 511 단계로 진행하여 CWND를 지연 증가량 대비 속도 증가량이 임계치 도달 시점에서의 전송중인 데이터량 값으로 설정할 수 있다. 속도를 우선 고려하여 결정된 임계치 도달 시점의 전송중인 데이터량을 CWND로 설정함으로써, 프록시 장치는 다른 기기/어플리케이션을 고려하여 가능한 최대 속도를 제공하는 방향으로 데이터 전송을 제어할 수 있다.
일 실시 예에 따라서, 지연만을 고려한 Threshsensitive - tput 값이 가장 큰 값을 가질 수 있으며, 속도와 지연을 함께 고려하는 Threshsensitive 값은 이보다 작은 값을 가지며, 속도를 우선적으로 고려하는 Threshinsensitive 값은 가장 작은 값으로 설정될 수 있다.
도 6은 본 개시의 다양한 실시 예들에 따른 무선 통신 시스템에서 손실 발생 시 네트워크 사용량에 따라 전송량 임계 변수를 제어하기 위한 프록시 장치의 동작 방법을 도시한다. 도 6은 프록시 장치 110의 동작 방법을 예시한다.
도 6을 참고하면, 601 단계에서, 프록시 장치는 손실 발생을 감지한다. 일 실시 예에 따라, 프록시 장치는 Wi-Fi 데이터 손실 발생을 감지할 수 있다.
이어, 603 단계에서, 프록시 장치는 네트워크 사용량이 임계치보다 큰 값을 가지는지 판단한다. 일 실시 예에 따라, 프록시 장치는 네트워크 사용량 메트릭(metric)이 미리 설정된 임계치보다 큰 값을 가지는지 결정할 수 있다. 네트워크 사용량 메트릭은, 예를 들어, 플로우들의 속도 총합, 총 플로수의 수, 요구/선호 속도가 존재하는 플로우들의 요구/선호 속도의 총합, 손실이 발생한 기기의 플로우들을 제외한 플로우들의 속도 총합, 손실이 발생한 기기의 플로우들을 제외한 총 플로우들의 수 및 손실이 발생한 기기의 플로우들을 제외한 요구/선호 속도가 존재하는 플로우들의 요구/선호 속도의 총합 중 적어도 하나를 고려하여 결정될 수 있다. 이 때, 손실이 발생한 기기의 플로우들을 제외하고 네트워크 사용량 메트릭이 결정될 수도 있다. 특정 기기의 한 플로우에서 손실이 발생하였다는 의미는 그 기기의 다른 플로우들에서도 손실이 발생하였을 가능성이 높다는 의미이기 때문에, 네트워크 사용량 향상을 위해서는 이를 배제시킬 필요성이 있을 수 있기 때문이다. 미리 설정된 임계치는, 네트워크 사용량 메트릭이 지연을 악화 시킬 정도 수준으로 CWND를 조절하는 것이 필요한 실험적인 값으로 미리 설정될 수 있다. 네트워크 사용량이 임계치보다 큰 경우, 프록시 장치는 605 단계로 진행한다. 네트워크 사용량이 임계치 이하인 경우, 프록시 장치는 607 단계로 진행한다.
네트워크 사용량이 임계치보다 큰 경우, 605 단계에서, 프록시 장치는 CWND를 CWNDLoss 값으로 설정한다. 일 실시 예에 따, 프록시 장치는 CWND를 지연을 줄이기 위해 더 작은 값인 CWNDLoss 값으로 설정할 수 있다. CWND란 ACK를 수신하기 전까지 네트워크로 전송할 수 있는 TCP 데이터의 양의 한계를 의미하므로, 네트워크 사용량이 많은 경우 CWND 값이 클수록 지연 및 지터를 악화시킬 수 있다. 따라서, 네트워크 사용량이 임계치보다 큰 경우, CWND 값을 더 작은 값인 CWNDLoss 값으로 설정함으로써 지연 및 지터를 개선할 수 있다. 즉, 더 작은 CWND 값의 설정을 통해 손실이 발생한 플로우의 전송을 억제하고, 다른 플로우들에 전송 기회를 많이 부여함으로써 전체 네트워크 사용률(utilization)을 높일 수 있다. CWNDLoss 값은 데이터 지연을 개선할 수 있는 실험적인 값으로 미리 설정될 수 있다.
네트워크 사용량이 임계치 이하인 경우, 607 단계에서, 프록시 장치는 CWND를 CWNDoriginal 값으로 설정한다. 일 실시 예에 따라, 프록시 장치는 CWND를 원래의 CWNDoriginal 값으로 유지할 수 있다. 이 경우는, 해당 플로우가 패킷 재전송 등으로 대역폭을 비효율적으로 사용하더라도 네트워크 사용률에 미치는 영향이 크지 않은 경우로서, CWND를 줄임으로써 발생할 수 있는 해당 플로우의 속도 저하를 방지하기 위해서 원래 CWND 값을 유지할 수 있다.
이어, 609 단계에서, 프록시 장치는 손실로부터 복구되었는지 판단한다. 즉, 프록시 장치는 데이터 손실이 일어나는 상태에서 원래 상태로 복구되었는지 결정한다. 손실로부터 복구되었다고 판단되는 경우, 프록시 장치는 611 단계로 진행한다. 손실로부터 복구되지 않았다고 판단되는 경우, 프록시 장치는 609 단계를 반복하여 손실 복구 여부를 판단한다.
손실로부터 복구되었다고 판단되는 경우, 611 단계에서, 프록시 장치는 CWND를 CWNDoriginal 값으로 설정한다. 일 실시 예에 따라, 데이터 손실 상태가 아닌 경우 데이터 지연이 일어날 가능성이 낮으며, CWND를 줄임으로써 발생할 수 있는 해당 플로우의 속도 저하를 방지하기 위해서 프록시 장치는 원래 CWND 값으로 복구할 수 있다.
일 실시 예에 따라, TCP 프록시 환경에서 종래의 TCP CUBIC 방식은 프록시 양단 간의 속도 차가 존재하면, 프록시 수신 버퍼가 자주 가득 차는 현상이 발생하여 지연 및 지터를 악화시킬 수 있다. 이러한 문제를 개선하기 위해, 이하, 본 개시에서 제안하는 프록시 장치 양단의 각 네트워크 속도 차이에 따른 전송 지연을 감소하기 위해 수신량 임계 변수 설정을 제어하는 구체적인 과정은 도 7 내지 도 8과 같이 실행될 수 있다.
도 7은 본 개시의 다양한 실시 예들에 따른 통신 시스템에서 수신량 임계 변수를 제어하기 위한 프록시 장치의 동작 방법을 도시한다. 도 7은 프록시 장치 110의 동작 방법을 예시한다.
도 7을 참고하면, 701 단계에서, 프록시 장치는 프록시 장치에 연결된 제1 네트워크의 속도와 제2 네트워크의 속도를 기반으로 수신량 임계 변수를 설정한다. 일 실시 예에 따라, 프록시 장치는 프록시 장치에 연결된 제1 네트워크의 속도와 제2 네트워크의 속도 차이를 고려하여 프록시 장치의 수신량 임계 변수를 결정할 수 있다. 예를 들어, 수신량 임계 변수는 ‘윈도우’로, 수신량 임계 변수의 값은 ‘윈도우 크기’로 지칭될 수 있다.
이후, 703 단계에서, 프록시 장치는 설정된 수신량 임계 변수 정보를 제1 네트워크로 전송한다. 일 실시 예에 따라, 프록시 장치는 설정된 프록시 장치의 수신량 임계 변수 정보를 제1 네트워크의 서버 장치로 전송할 수 있다. 이를 통해 서버 장치가 클라이언트 장치로 전송할 수 있는 데이터량은 프록시 장치의 수신량 임계 변수 정보에 의해 제어될 수 있다.
도 8은 본 개시의 다양한 실시 예들에 따른 무선 통신 시스템에서 서브-커넥션(sub-connection) 1 및 서브-커넥션 2의 속도 차이에 따라 수신량 임계 변수를 제어하기 위한 프록시 장치의 동작 방법을 도시한다. 도 8은 프록시 장치 110의 동작 방법을 예시한다.
도 8을 참고하면, 801 단계에서, 프록시 장치는 서브-커넥션 1과 서브-커넥션 2의 속도 차이가 임계치보다 큰지 판단한다. 일 실시 예에 따라, 프록시 장치는 하나의 커넥션을 서브-커넥션 1과 서브-커넥션 2로 분리한 경우, 서브-커넥션 1과 서브-커넥션 2의 속도 차이가 미리 설정된 임계치보다 큰지 결정할 수 있다. 예를 들어, 서브-커넥션 1은 서버 장치(예: 서버 170)를 포함하는 제1 네트워크와 프록시 장치의 연결을 의미하고, 서브-커넥션 2는 클라이언트 장치(예: IP 전화 130, IP TV 140, 모바일 장치 150 등)를 포함하는 제2 네트워크와 프록시 장치의 연결을 의미할 수 있다. 서브-커넥션 1의 속도가 서브-커넥션 2의 속도보다 일정 이상 큰 경우, 서브-커넥션 1로부터 전송된 데이터들은 서브-커넥션 2로 충분히 전달되지 못할 수 있다. 시간의 경과에 따라 프록시 장치의 버퍼는 서브-커넥션 1로부터 오는 데이터로 인해 가득 찰 수 있으며, 이로 인해서 전체적인 전송 지연과 지터가 커지게 되므로, 서브-커넥션 1의 속도를 서브-커넥션 2에 맞추어 제어할 필요가 있다. 서브-커넥션 1과 서브-커넥션 2의 속도 차이가 임계치보다 큰 경우, 프록시 장치는 803 단계로 진행한다. 서브-커넥션 1과 서브-커넥션 2의 속도 차이가 임계치 이하인 경우, 프록시 장치는 805 단계로 진행한다.
서브-커넥션 1과 서브-커넥션 2의 속도 차이가 임계치보다 큰 경우, 803 단계에서, 프록시 장치는 네트워크 파라미터 및 버퍼 상태를 고려하여 최적 RWND 값을 설정한다. 예를 들어, 네트워크 파라미터는 서브-커넥션 1의 속도, 서브 커넥션 2의 속도, RTT, 손실률(loss rate) 등을 포함할 수 있다. 일 실시 예에 따라, 최적 RWND는 프록시 장치의 버퍼 상태를 고려한 RWND와 속도를 포함한 네트워크 파라미터를 고려한 RWND 중 작은 값으로 설정될 수 있다. 최적 RWND 값은 바이트(byte) 단위를 가지며, <수학식 1>과 같이 산출될 수 있다.
Figure pat00001
<수학식 1>에서, RWNDBuffer는 버퍼 상태를 고려했을 때의 RWND로 기존 RWND 설정 방식에 의해 산출된 값이다. RWNDThroughput은 속도를 포함한 네트워크 파라미터를 고려한 RWND로 본 개시에 의해 제안된 방식에 의해 산출된 값이다. 일 실시 예에 따라, RWNDThroughput은 <수학식 2>와 같이 산출될 수 있다.
Figure pat00002
<수학식 2>에서, RWNDThroughput은 속도를 포함한 네트워크 파라미터를 고려한 RWND 값이다. Tsubconnection 2는 서브-커넥션 2의 처리율이며, 단위는 bps(bit/sec)이다. RTT는 응답 지연 시간으로, 단위는 초(sec)이다. P는 패킷 손실율이고, C는 상수로 0.93 값으로 정의될 수 있다. <수학식 2>와 상수 값 등은 실험적으로 결정된 값이며, 다양한 실시 예들에 따라 다른 값들로 설정될 수 있다.
상술한 바와 같이, RWND의 최적 값은 버퍼를 고려한 RWNDBuffer 값과, 속도를 포함한 네트워크 파라미터를 고려한 RWNDThroughput 중 작은 값으로 결정될 수 있다. 버퍼 크기에 의해 수신 가능한 데이터량보다 서브-커넥션 2의 속도와 지연을 고려하여 더 작은 값으로 RWND를 설정함으로써, 서브-커넥션 1의 서버는 서브-커넥션 2의 클라이언트가 실제 수신 가능한 양보다 적은 양을 전송하여 지연 및 지터를 감소시킬 수 있다.
최적 RWND를 설정한 후, 프록시 장치는 805 단계로 진행한다.
서브-커넥션 1과 서브-커넥션 2의 속도 차이가 임계치 이하인 경우, 805 단계에서, 프록시 장치는 RWND 정보를 서브-커넥션 1의 장치로 전송한다. 예를 들어, 프록시 장치는 801 단계에서 속도 차이가 임계치 이하로 판단되는 경우 종전 방식에 따라 프록시 장치의 버퍼 상태를 고려하여 설정된 RWND 값 혹은 803 단계에서 설정된 최적의 RWND 정보를 서브-커넥션 1의 장치로 전송할 수 있다. 이 때, 서브-커넥션 1의 장치가 서버 장치이고, 서브-커넥션 2의 장치가 클라이언트 장치인 경우에 적용된다. 반대로, 서브-커넥션 2의 장치가 서버로 동작하고, 서브-커넥션 1의 장치가 클라이언트 장치로 동작하는 경우, 프록시 장치는 프록시 장치의 수신 버퍼를 고려하여 설정된 RWND를 서브-커넥션 2로 전송할 수 있다. 설정된 RWND 정보를 수신한 서브-커넥션 1이 수신된 정보에 기반하여 데이터를 전송하도록 함으로써, 프록시 장치에서 수신 및 전송할 데이터량을 제어할 수 있다.
상술한 바와 같이, 종래의 TCP 프록시 방식과 본 개시에서 제안하는 방식은 차이가 있으며, 구체적인 성능의 차이는 도 9a 내지 도 10b와 같이 나타날 수 있다.
도 9a와 도 9b 는 본 개시의 다양한 실시 예들에 따른 무선 통신 시스템에서 각각 CWND 값을 고정하는 경우 및 CWND 값을 감소시키는 경우 데이터 전송 지연에 대한 그래프 910 및 950을 도시한다.
도 9a를 참고하면, 지연에 민감하지 않은 어플리케이션(예: Dropbox 등 클라우드 스토리지 어플리케이션, Torrent 등 파일 공유 어플리케이션 등)에 대해, 종전 CWND를 설정한 경우, 속도 및 시간에 따른 RTT 값의 변화가 도시된다. 일 실시 예에 따라, 속도는 128 Mbps로 비교적 빠르나, 그에 따른 평균 RTT는 45 내외이고 변화 폭도 비교적 크게 나타나는 것을 확인할 수 있다. 지연에 민감하지 않은 어플리케이션은 작은 CWND 값을 설정하는 경우 지연은 개선되나 속도가 감소하게 되므로, 오히려 사용자 QoE를 낮추게 된다. 따라서, 지연에 민감하지 않은 어플리케이션은 CWND 값을 유지함으로써 좀 더 높은 속도를 제공하여 사용자 QoE를 향상 시킬 수 있다.
반면, 도 9b를 참고하면, 지연에 민감한 어플리케이션에 대해, 낮은 CWND를 설정한 경우, 속도 및 시간에 따른 RTT 값의 변화가 도시된다. 일 실시 예에 따라, 속도는 110 Mbps로 낮아지나, 그에 따른 평균 RTT는 20 내외이고 변화의 폭도 비교적 작게 나타나는 것을 확인할 수 있다. 지연에 민감한 어플리케이션은 높은 CWND 값을 설정하는 경우 지연이 커져서 사용자 QoE를 낮추게 된다. 특히, 높은 속도를 필요로 하지 않으나 지연에 민감한 어플리케이션(예: VR, AR, 게임 어플리케이션 등)은 높은 CWND 값 설정에 따른 속도 향상의 이득도 없이 지연이 커지는 손해만 보게 된다. 따라서, 지연에 민감하지 않은 어플리케이션은 CWND 값을 작게 설정함으로써 낮은 지연을 제공하여 사용자 QoE를 향상 시킬 수 있다.
도 10a와 10b는 본 개시의 다양한 실시 예들에 따른 무선 통신 시스템에서 종래 방식에 의한 RWND 제어 및 프록시 장치 양단의 속도 차이를 고려한 RWND 제어에 따른 데이터 전송 지연에 대한 그래프를 도시한다. 일 실시 예에 따라, TCP 프록시 양 단의 서버를 포함하는 서브-커넥션 1과 클라이언트를 포함하는 서브-커넥션 2로 분리되는 경우, 서브-커넥션 1의 속도는 500Mbps이고, 서브-커넥션 2의 속도는 120Mbps일 수 있다.
도 10a를 참고하면, 프록시 장치 양단의 속도 차이의 고려 없이 버퍼 상태만 고려하여 RWND를 설정한 경우, 시간에 따른 RTT 값의 그래프 1010과 시간에 따른 RWND 변화 그래프 1020이 도시된다. 버퍼 상태만을 고려하여 RWND를 설정하는 경우, 그래프 1010과 같이 RTT 값은 40내외로 큰 폭으로 변화하게 되며, 그래프 1020과 같이 RWND는 0과 50MB(megabyte) 사이로 큰 폭으로 변화하게 된다. 서브-커넥션 1의 속도가 서브-커넥션 2의 속도보다 크기 때문에, 서브-커넥션 1로부터 전송된 데이터들은 서브-커넥션 2로 충분히 전달되지 못할 수 있다. 프록시 장치의 버퍼 크기에 따라서 시간 차는 있겠지만, 프록시 장치의 버퍼는 서브-커넥션 1로부터 오는 데이터로 인해 가득 차게 되며, 이로 인해서 전체적인 전송 지연과 지터가 커지게 된다.
반면, 도 10b를 참고하면, 프록시 장치 양단의 속도 차이를 고려하여 최적의 RWND를 설정한 경우 시간에 따른 RTT 값의 그래프 1050과 시간에 따른 RWND 변화 그래프 1060이 도시된다. 프록시 양단의 속도 차이를 고려하여 RWND를 설정하는 경우, 그래프 1050과 같이 RTT 값은 10내외로 변화의 폭이 크지 않으며, 그래프 1060과 같이 RWND는 170KB(kilobyte) 수준을 유지하게 된다. 서브-커넥션 2의 속도, RTT 및 전송 지연율 값을 고려하여 RWND를 설정함으로써, 서브-커넥션 1이 프록시 장치로 전송하는 속도와 서브-커넥션 2의 속도를 비슷하게 만들어 주게 되면 속도의 저하 없이(처리율 120Mbps 수준으로 동일) 전송 지연과 지터를 큰 폭으로 감소시킬 수 있게 된다.
본 개시의 청구항 또는 명세서에 기재된 실시 예들에 따른 방법들은 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어의 조합의 형태로 구현될(implemented) 수 있다.
소프트웨어로 구현하는 경우, 하나 이상의 프로그램(소프트웨어 모듈)을 저장하는 컴퓨터 판독 가능 저장 매체가 제공될 수 있다. 컴퓨터 판독 가능 저장 매체에 저장되는 하나 이상의 프로그램은, 전자 장치(device) 내의 하나 이상의 프로세서에 의해 실행 가능하도록 구성된다(configured for execution). 하나 이상의 프로그램은, 전자 장치로 하여금 본 개시의 청구항 또는 명세서에 기재된 실시 예들에 따른 방법들을 실행하게 하는 명령어(instructions)를 포함한다.
이러한 프로그램(소프트웨어 모듈, 소프트웨어)은 랜덤 액세스 메모리 (random access memory), 플래시(flash) 메모리를 포함하는 불휘발성(non-volatile) 메모리, 롬(ROM: Read Only Memory), 전기적 삭제가능 프로그램가능 롬(EEPROM: Electrically Erasable Programmable Read Only Memory), 자기 디스크 저장 장치(magnetic disc storage device), 컴팩트 디스크 롬(CD-ROM: Compact Disc-ROM), 디지털 다목적 디스크(DVDs: Digital Versatile Discs) 또는 다른 형태의 광학 저장 장치, 마그네틱 카세트(magnetic cassette)에 저장될 수 있다. 또는, 이들의 일부 또는 전부의 조합으로 구성된 메모리에 저장될 수 있다. 또한, 각각의 구성 메모리는 다수 개 포함될 수도 있다.
또한, 프로그램은 인터넷(Internet), 인트라넷(Intranet), LAN(Local Area Network), WLAN(Wide LAN), 또는 SAN(Storage Area Network)과 같은 통신 네트워크, 또는 이들의 조합으로 구성된 통신 네트워크를 통하여 접근(access)할 수 있는 부착 가능한(attachable) 저장 장치(storage device)에 저장될 수 있다. 이러한 저장 장치는 외부 포트를 통하여 본 개시의 실시 예를 수행하는 장치에 접속할 수 있다. 또한, 통신 네트워크상의 별도의 저장장치가 본 개시의 실시 예를 수행하는 장치에 접속할 수도 있다.
상술한 본 개시의 구체적인 실시 예들에서, 개시에 포함되는 구성 요소는 제시된 구체적인 실시 예에 따라 단수 또는 복수로 표현되었다. 그러나, 단수 또는 복수의 표현은 설명의 편의를 위해 제시한 상황에 적합하게 선택된 것으로서, 본 개시가 단수 또는 복수의 구성 요소에 제한되는 것은 아니며, 복수로 표현된 구성 요소라 하더라도 단수로 구성되거나, 단수로 표현된 구성 요소라 하더라도 복수로 구성될 수 있다.
한편 본 개시의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 개시의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 개시의 범위는 설명된 실시 예에 국한되어 정해져서는 아니 되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.

Claims (20)

  1. 통신 시스템에서 프록시(proxy) 장치의 동작 방법에 있어서,
    어플리케이션의 특성, 네트워크 사용량 및 상기 네트워크의 속도 중 적어도 하나에 기반하여 데이터 송수신에 관한 임계 변수를 설정하는 과정과,
    상기 임계 변수에 기반하여, 상기 네트워크와의 데이터 송수신을 제어하는 과정을 포함하고,
    상기 임계 변수는, 상기 프록시 장치에서 수신 가능한 데이터량 및 상기 프록시 장치가 송신 가능한 데이터량 중 적어도 하나에 관련되는 방법.
  2. 청구항 1에 있어서,
    상기 임계 변수를 설정하는 과정은,
    상기 어플리케이션의 지연 민감성(delay-sensitive) 여부 및 네트워크 사용량 중 적어도 하나를 기반으로 상기 데이터 송수신에 관한 CWND(congestion window)를 설정하는 과정을 포함하는 방법.
  3. 청구항 2에 있어서,
    상기 CWND를 설정하는 과정은,
    상기 어플리케이션의 요구/선호 대역폭의 존재 여부를 판단하는 과정과,
    상기 판단 결과에 따라, 상기 어플리케이션의 지연 민감성 여부를 판단하는 과정과,
    상기 어플리케이션의 지연 민감성 판단 결과에 기초하여, 제1 임계치를 미리 설정된 값으로 결정하는 과정과,
    상기 제1 임계치에 기반하여, 상기 CWND를 설정하는 과정을 포함하는 방법.
  4. 청구항 3에 있어서,
    상기 제1 임계치를 결정하는 과정은,
    상기 어플리케이션이 지연 민감성으로 판단되는 경우, 상기 어플리케이션에 대한 데이터 전송 지연을 고려하여 상기 제1 임계치를 결정하는 과정을 포함하는 방법.
  5. 청구항 2에 있어서,
    상기 CWND를 설정하는 과정은,
    데이터 손실을 감지하는 과정과,
    상기 데이터 손실이 감지됨에 따라, 상기 네트워크 사용량이 제2 임계치보다 큰지 판단하는 과정과,
    상기 판단에 따라, 상기 CWND를 설정하는 과정을 포함하는 방법.
  6. 청구항 5에 있어서,
    상기 판단에 따라, 상기 CWND를 설정하는 과정은,
    상기 네트워크 사용량이 상기 제2 임계치보다 크다고 판단되는 경우, 상기 CWND를 종전보다 작게 설정하는 과정과,
    상기 네트워크 사용량이 상기 제2 임계치보다 작거나 같다고 판단되는 경우, 상기 CWND를 종전과 동일한 값으로 설정하는 과정을 포함하는 방법.
  7. 청구항 1에 있어서,
    상기 임계 변수를 설정하는 과정은,
    상기 프록시 장치에 연결된 제1 네트워크의 속도와 상기 프록시 장치에 연결된 제2 네트워크의 속도의 차이에 기반하여 상기 데이터 송수신에 관한 RWND(receiver window)를 설정하는 과정을 포함하는 방법.
  8. 청구항 7에 있어서,
    상기 데이터 송수신을 제어하는 과정은,
    상기 설정된 RWND에 관한 정보를 상기 제1 네트워크로 전송하는 과정을 포함하는 방법.
  9. 청구항 7에 있어서,
    상기 RWND를 설정하는 과정은,
    상기 제1 네트워크의 속도와 상기 제2 네트워크의 속도의 차이가 제3 임계치보다 큰지 판단하는 과정과,
    상기 판단에 따라, 상기 RWND를 설정하는 과정을 포함하는 방법.
  10. 청구항 9에 있어서,
    상기 RWND를 설정하는 과정은,
    상기 제1 네트워크의 속도와 상기 제2 네트워크의 속도의 차이가 제3 임계치보다 크다고 판단되는 경우, 상기 제2 네트워크의 속도와 버퍼 상태를 고려하여 상기 RWND를 설정하는 과정을 포함하는 방법.
  11. 통신 시스템에서 프록시(proxy) 장치에 있어서,
    어플리케이션의 특성, 네트워크 사용량 및 상기 네트워크의 속도 중 적어도 하나에 기반하여 데이터 송수신에 관한 임계 변수를 설정하고, 상기 임계 변수에 기반하여, 상기 네트워크와의 데이터 송수신을 제어하는 적어도 하나의 프로세서(processor)를 포함하고,
    상기 임계 변수는, 상기 프록시 장치에서 수신 가능한 데이터량 및 상기 프록시 장치가 송신 가능한 데이터량 중 적어도 하나에 관련되는 장치.
  12. 청구항 11에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 어플리케이션의 지연 민감성(delay-sensitive) 여부 및 네트워크 사용량 중 적어도 하나를 기반으로 상기 데이터 송수신에 관한 CWND(congestion window)를 설정하는 장치.
  13. 청구항 12에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 어플리케이션의 요구/선호 대역폭의 존재 여부를 판단하고, 상기 판단 결과에 따라, 상기 어플리케이션의 지연 민감성 여부를 판단하고, 상기 어플리케이션의 지연 민감성 판단 결과에 기초하여, 제1 임계치를 미리 설정된 값으로 결정하고, 상기 제1 임계치에 기반하여, 상기 CWND를 설정하는 장치.
  14. 청구항 13에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 어플리케이션이 지연 민감성으로 판단되는 경우, 상기 어플리케이션에 대한 데이터 전송 지연을 고려하여 상기 제1 임계치를 결정하는 장치.
  15. 청구항 12에 있어서,
    상기 적어도 하나의 프로세서는,
    데이터 손실을 감지하고, 상기 데이터 손실이 감지됨에 따라, 상기 네트워크 사용량이 제2 임계치보다 큰지 판단하고, 상기 판단에 따라, 상기 CWND를 설정하는 장치.
  16. 청구항 15에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 네트워크 사용량이 상기 제2 임계치보다 크다고 판단되는 경우, 상기 CWND를 종전보다 작게 설정하고, 상기 네트워크 사용량이 상기 제2 임계치보다 작거나 같다고 판단되는 경우, 상기 CWND를 종전과 동일한 값으로 설정하는 장치.
  17. 청구항 11에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 프록시 장치에 연결된 제1 네트워크의 속도와 상기 프록시 장치에 연결된 제2 네트워크의 속도의 차이에 기반하여 상기 데이터 송수신에 관한 RWND(receiver widnow)를 설정하는 장치.
  18. 청구항 17에 있어서,
    상기 설정된 RWND에 관한 정보를 상기 제1 네트워크로 전송하는 송수신부를 더 포함하는 장치.
  19. 청구항 17에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 제1 네트워크의 속도와 상기 제2 네트워크의 속도의 차이가 제3 임계치보다 큰지 판단하고, 상기 판단에 따라, 상기 RWND를 설정하는 장치.
  20. 청구항 19에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 제1 네트워크의 속도와 상기 제2 네트워크의 속도의 차이가 제3 임계치보다 크다고 판단되는 경우, 상기 제2 네트워크의 속도와 버퍼 상태를 고려하여 상기 RWND를 설정하는 장치.
KR1020170060412A 2017-05-16 2017-05-16 통신 시스템에서 데이터 전송을 제어하기 위한 장치 및 방법 KR102359274B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020170060412A KR102359274B1 (ko) 2017-05-16 2017-05-16 통신 시스템에서 데이터 전송을 제어하기 위한 장치 및 방법
US15/981,686 US10972931B2 (en) 2017-05-16 2018-05-16 Apparatus and method for controlling data transmission in communication system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170060412A KR102359274B1 (ko) 2017-05-16 2017-05-16 통신 시스템에서 데이터 전송을 제어하기 위한 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20180125741A true KR20180125741A (ko) 2018-11-26
KR102359274B1 KR102359274B1 (ko) 2022-02-07

Family

ID=64272273

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170060412A KR102359274B1 (ko) 2017-05-16 2017-05-16 통신 시스템에서 데이터 전송을 제어하기 위한 장치 및 방법

Country Status (2)

Country Link
US (1) US10972931B2 (ko)
KR (1) KR102359274B1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017119408A1 (ja) * 2016-01-07 2017-07-13 日本電気株式会社 送信データ量制御装置、方法および記録媒体
TW201924285A (zh) * 2017-10-06 2019-06-16 日商日本電氣股份有限公司 資料通信裝置、通信系統、資料通信方法及程式
US11329959B2 (en) * 2018-12-21 2022-05-10 Fortinet, Inc. Virtual routing and forwarding (VRF)-aware socket
US11270745B2 (en) * 2019-07-24 2022-03-08 Realtek Semiconductor Corp. Method of foreground auto-calibrating data reception window and related device
US11722412B1 (en) * 2020-09-28 2023-08-08 Amazon Technologies, Inc. Dynamically managing connection parameters among multiple computing devices
US20230308397A1 (en) * 2022-03-25 2023-09-28 Sandvine Corporation System and method for calibration of traffic flow acceleration

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100161842A1 (en) * 2008-12-16 2010-06-24 Lenovo (Beijing) Limited Mobile terminal and switching method for controlling data transmission interface thereof
US9391911B1 (en) * 2011-07-15 2016-07-12 Google Inc. Congestion window modification
KR20160092737A (ko) * 2015-01-28 2016-08-05 삼성전자주식회사 통신 시스템에서 혼잡 제어 방법 및 장치

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013063142A2 (en) 2011-10-24 2013-05-02 Qualcomm Incorporated Technique for prioritizing traffic at a router
US10091118B2 (en) * 2017-01-27 2018-10-02 Verizon Patent And Licensing Inc. Maximizing throughput over a TCP link by boosting packet transmission

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100161842A1 (en) * 2008-12-16 2010-06-24 Lenovo (Beijing) Limited Mobile terminal and switching method for controlling data transmission interface thereof
US9391911B1 (en) * 2011-07-15 2016-07-12 Google Inc. Congestion window modification
KR20160092737A (ko) * 2015-01-28 2016-08-05 삼성전자주식회사 통신 시스템에서 혼잡 제어 방법 및 장치

Also Published As

Publication number Publication date
US10972931B2 (en) 2021-04-06
KR102359274B1 (ko) 2022-02-07
US20180338264A1 (en) 2018-11-22

Similar Documents

Publication Publication Date Title
KR102359274B1 (ko) 통신 시스템에서 데이터 전송을 제어하기 위한 장치 및 방법
US10511991B2 (en) Adapting communication parameters to link conditions, traffic types, and/or priorities
CA3010308C (en) Maximizing quality of service for qos adaptive video streaming via dynamic application-layer throughput rate shaping
EP3323259B1 (en) User-plane enhancements supporting in-bearer sub-flow qos differentiation
US10374958B2 (en) Method and apparatus for TCP-based transmission control in communication system
US8189532B2 (en) Mobile node, a method or handover and a computer program
US9167473B2 (en) Communication processing method, apparatus and gateway device
JP2016526317A (ja) ビデオアプリケーションのためのQoE−AWAREWiFiエンハンスメント
US9071984B1 (en) Modifying a data flow mechanism variable in a communication network
EP2912878A1 (en) Method and system for cooperative congestion detection in cellular networks
US11871265B2 (en) Method and an electronic device for dynamically controlling TCP congestion window
JP2013535131A (ja) 複数の異なるネットワークを介したデータの伝送
JP6478909B2 (ja) メディアプレフィル性能の改良
JP2011176693A (ja) 移動体無線通信装置、tcpフロー制御装置及びその方法
Kucera et al. Latency as a service: Enabling reliable data delivery over multiple unreliable wireless links
KR102094988B1 (ko) 다중경로 전송제어프로토콜을 위한 혼잡 윈도우 제어 장치 및 방법
WO2013036453A1 (en) Methods, system and apparatus for packet routing using a hop-by-hop protocol in multi-homed environments
WO2014079386A1 (zh) 基于万维网的实时通信的实现方法及装置
CN110637446B (zh) 无线通信中tcp代理设备辅助的通信方法和装置
WO2018028638A1 (zh) 一种信息传输方法、装置、系统、相关设备和存储介质
Park et al. Provisioning qos for wifi-enabled portable devices in home networks
Chaves et al. CogTRA: a deployable mechanism for cognitive transmission rate adaptation in IEEE 802.11 networks
KR20190047420A (ko) Udp 캡슐화에 기반한 대역폭 정보 제공 방법 및 이를 위한 장치

Legal Events

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