KR102350504B1 - 통신 시스템에서 하향링크 전송률 제어를 위한 장치 및 방법 - Google Patents

통신 시스템에서 하향링크 전송률 제어를 위한 장치 및 방법 Download PDF

Info

Publication number
KR102350504B1
KR102350504B1 KR1020150059018A KR20150059018A KR102350504B1 KR 102350504 B1 KR102350504 B1 KR 102350504B1 KR 1020150059018 A KR1020150059018 A KR 1020150059018A KR 20150059018 A KR20150059018 A KR 20150059018A KR 102350504 B1 KR102350504 B1 KR 102350504B1
Authority
KR
South Korea
Prior art keywords
packet
delay
buffering delay
buffering
tendency
Prior art date
Application number
KR1020150059018A
Other languages
English (en)
Other versions
KR20160127511A (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 KR1020150059018A priority Critical patent/KR102350504B1/ko
Priority to US15/137,422 priority patent/US10193779B2/en
Priority to CN201680024739.3A priority patent/CN107624232B/zh
Priority to EP16786707.6A priority patent/EP3289802B1/en
Priority to PCT/KR2016/004294 priority patent/WO2016175521A1/en
Publication of KR20160127511A publication Critical patent/KR20160127511A/ko
Application granted granted Critical
Publication of KR102350504B1 publication Critical patent/KR102350504B1/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/10Flow control between communication endpoints
    • H04W28/14Flow control between communication endpoints using intermediate storage
    • 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/0852Delays
    • H04L43/0864Round trip delays
    • 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/0278Traffic management, e.g. flow control or congestion control using buffer status reports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/16Central resource management; Negotiation of resources or communication parameters, e.g. negotiating bandwidth or QoS [Quality of Service]
    • H04W28/18Negotiating wireless communication parameters
    • H04W28/22Negotiating communication rate
    • 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/25Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions

Abstract

본 발명은 통신 시스템에서 서버의 동작 방법에 있어서, 단말에 대한 패킷 전송 지연에 기초하여 버퍼링 지연에 대한 성향을 결정하는 과정과, 상기 성향에 따라 상기 단말의 상향링크 전송률을 제어하기 위한 파라미터를 결정하는 과정과,상기 파라미터를 송신하는 과정을 포함하는 것을 특징으로 한다.

Description

통신 시스템에서 하향링크 전송률 제어를 위한 장치 및 방법{APPARATUS AND METHOD FOR CONTROLLING DOWNLINK THROUGHPUT IN COMMUNICATION SYSTEM}
본 발명은 통신 시스템에서 TCP 트래픽의 전송률 제어에 관한 것이다.
현대사회에서는 스마트폰(smart phone), 태블릿(tablet) PC와 같은 다양한 스마트 기기의 사용 증가로 인해 통신망에서 웹 페이지 액세스, 비디오 스트리밍(video streaming), SNS(Social Networking Service) 사이트 접속 등 인터넷 컨텐트(content) 사용이 기하급수적으로 늘어나고 있다. 특히, 최근 들어 멀티태스킹(multitasking)이 가능한 무선기기의 증가로 하향링크뿐만 아니라 상향링크의 데이터 사용량도 급속히 증가하고 있는 추세이다.
통상적으로, LTE(Long Term Evolution)와 같은 셀룰러(cellular) 무선망에서 상향링크는 스케줄링(scheduling) 요청, MIMO(Multiple Input Multi Output) 지원 등 리소스 사용에 있어 하향링크 보다 제약이 더 많다. 따라서, 상향링크의 데이터 전송을 위한 가용 대역폭(available bandwidth)은 비록 하향링크과 동일한 대역폭의 캐리어(carrier)를 사용하는 경우에도 하향링크 보다 훨씬 낮을 것이다. 이러한 상향링크와 하향링크의 비 대칭성 때문에 상향링크 트래픽(traffic) 증가에 의한 상향링크 혼잡 발생 가능성이 점점 커지고 있다. 상향링크 혼잡은 대부분의 웹(web) 기반 인터넷(internet) 애플리케이션들의 하향링크 전송률에 심각한 영향을 줄 수 있다.
웹 기반 인터넷 애플리게이션의 데이터 전송 방식은 거의 대부분이 전송 제어 프로토콜(Transport Control Protocol, TCP) 이며, 리눅스(Linux) 및 윈도우(Windows)와 같은 상용 시스템에서 사용하고 있는 TCP 알고리즘(algorithm)에는 흔히 ACK 클럭킹(ACKnowledgement clocking) 이라 불리는 방식이 필수적으로 포함되어 있다. 이러한 ACK 기반의 셀프-클럭킹(Self-clocking)에서는 ACK가 수신되어야 새로운 데이터 패킷(packet)의 전송이 가능하므로 병목구간(Bottleneck)의 대역폭과 ACK가 서버에 도착하는 속도에 따라 서버의 전송 속도가 자동으로 조절된다. 그러므로, 원활한 하향링크 패킷 전송을 위해서는 상향링크 ACK가 적절한 시점에 서버에 도달하는 것이 필요하다.
본 발명의 일 실시 예는 통신 시스템에서 전송률을 제어하기 위한 장치 및 방법을 제공한다.
본 발명의 다른 실시 예는 통신 시스템에서 하향링크 패킷의 전송률을 향상시키기 위한 장치 및 방법을 제공한다.
본 발명의 다른 실시 예는 통신 시스템에서 하향링크 패킷에 대한 ACK(ACKnowledgement)의 전송 지연을 감소시키기 위한 장치 및 방법을 제공한다.
본 발명의 다른 실시 예는 통신 시스템에서 단말에서의 패킷 버퍼링(buffering) 지연 시간을 추정하기 위한 장치 및 방법을 제공한다.
본 발명의 다른 실시 예는 통신 시스템에서 상향링크의 가용 대역폭을 제어하기 위한 장치 및 방법을 제공한다.
본 발명의 다른 실시 예는 통신 시스템에서 상향링크 패킷의 버퍼링 성향(trend)을 검출하는 장치 및 방법을 제공한다.
본 발명의 다른 실시 예는 통신 시스템에서 버퍼링 지연 추정 에러와 상향링크 전송율 크기 추정 에러를 마스킹(masking)하기 위한 장치 및 방법을 제공한다.
본 발명은 통신 시스템에서 서버의 동작 방법에 있어서, 단말에 대한 패킷 전송 지연에 기초하여 버퍼링 지연에 대한 성향을 결정하는 과정과, 상기 성향에 따라 상기 단말의 상향링크 전송률을 제어하기 위한 파라미터를 결정하는 과정과,상기 파라미터를 송신하는 과정을 포함하는 것을 특징으로 한다.
본 발명은 통신 시스템의 서버에 있어서, 단말로부터의 패킷 전송 지연을 결정하고, 상기 패킷 전송 지연을 이용하여 버퍼링 지연의 성향을 결정하는 성향 결정부와, 결정된 상기 버퍼링 지연의 성향에 따라 전송률 제어를 위한 파라미터 값을 제어하는 파라미터 결정부를 포함하는 것을 특징으로 한다.
본 발명의 실시 예에 따르면, 통신 시스템에서 패킷이 전송되기 전에 단말에서 버퍼링되는 지연 시간과 상향링크 가용 대역폭에 대한 정확한 추정과 추정된 버퍼링 지연의 성향을 검출하여, 무선망 상태 변화에도 안정적으로 상향링크 버퍼링 상태 및 상향링크의 가용 대역폭 크기를 추정할 수 있다.
또한, 본 발명의 실시 예에 따르면 상향링크 혼잡 발생시 상향링크의 버퍼링 상태와 가용 대역폭 크기에 따라 효과적으로 상향링크 버퍼 상태를 유지하여 상향링크 전송율 감소없이 하향링크 전송율을 향상시킬 수 있다.
또한, 본 발명의 실시 예에 따르면 TCP 타임 스탬프 옵션이 오프(off)인 경우에도 상향링크의 가용 대역폭 크기를 추정할 수 있다.
도 1은 본 발명의 실시 예들이 적용되는 통신 시스템에서 ACK 패킷 지연에 의한 하향링크 전송의 예를 도시한다.
도 2는 본 발명의 실시 예에 따른 전송률을 제어하기 위한 장치의 블록도이다.
도 3은 본 발명의 실시 예에 따른 도 2의 장치를 포함한 전송률을 제어하기 위한 장치의 블록도이다.
도 4a 내지 도 4c는 본 발명의 실시 예에 따른 통신 시스템의 구성을 도시하는 도면들이다.
도 5는 본 발명의 실시 예에 따른 단방향 패킷 지연 측정 및 왕복 시간을 측정하는 동작을 설명하기 위한 도면이다.
도 6은 본 발명의 실시 예에 따른 전송률 제어를 위한 과정의 흐름을 도시한다.
도 7은 본 발명의 실시 예에 따른 전송 제어 파라미터를 결정하기 위한 장치의 블록도이다.
도 8은 본 발명의 실시 예에 따른 전송률 제어 파라미터 조절을 위한 과정의 흐름을 도시한다.
도 9는 본 발명의 실시 예에 따른 랜덤 확률 변수를 이용한 전송률 제어 파라미터 조절을 위한 과정의 흐름을 도시한다.
이하 첨부된 도면을 참조하여 본 발명의 동작 원리를 상세히 설명한다. 하기에서 본 발명을 설명에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
본 발명은 통신 시스템에서 전송률 제어를 위한 기술에 대해 설명한다. 특히, 본 발명은, 상향링크(Uplink) 방향의 데이터 처리에 혼잡(congestion)이 발생한 경우, 하향링크(Downlink)의 처리율(throughput) 감소를 방지하는 전송률 제어에 관한 기술을 설명한다.
도 1은 다양한 실시 예에 따른 ACK 패킷 지연에 의한 하향링크 전송의 예를 도시한다. 상기 도 1은 본 발명에서 고려하는 통신 프로토콜에 따른 하향링크 전송을 예시한다.
상기 도 1을 참고하면, 단말 110 및 서버 130는 하향링크 채널 102 및 상향링크 채널 104을 통해 패킷을 송수신한다. 상기 도 1에서, 상기 상향링크 채널 104 및 상기 하향링크 채널 102은 대역폭(bandwidth)의 비대칭성을 표현하기 위해 서로 다른 너비의 파이프(pipe) 형태로 도시되었다. 즉, 상기 파이프의 너비는 가용 대역폭(available bandwidth)를 의미한다.
상기 단말 110은 상향링크 패킷들을 위한 버퍼(buffer) 115를 포함한다. 어플리케이션 패킷은 실제로 물리적 링크로 전송되기 전에 단말 내부에서 여러 단계의 버퍼를 거치지만, 여기서는 편의상 하나의 논리적 버퍼로 표현한다. 상기 버퍼 115는 상향링크 데이터 패킷은 물론, 하향링크 데이터에 대한 ACK 패킷을 위해 사용될 수 있다. 상기 데이터 패킷 및 상기 ACK 패킷은 구분 없이 생성된 순서에 따라 상기 버퍼 115에 입력된다. 따라서, 상기 버퍼 115를 살펴보면, 상기 ACK 패킷들이 상기 상향링크 데이터 패킷들 사이에 버퍼링되어 있다. 따라서, ACK 패킷은 상기 ACK 패킷보다 먼저 상기 버퍼 115에 입력된 데이터 패킷들이 송신된 이후에 송신될 수 있다. 만일, 상기 상향링크 채널 104의 대역폭 제약에 의해 상향링크 데이터의 전송이 지연되면, 상기 버퍼 115 내에서 상기 ACK 패킷들의 간격은 더 커질 수 있다. 다시 말해, 상기 ACK 패킷의 전송이 지연된다.
상기 서버 130는 상기 단말 110로 하향링크 데이터 패킷을 송신한다. 상기 서버 130는 TCP의 전송률 제어 알고리즘에 의해 정해진 양의 하향링크 패킷들을 송신할 수 있다. 그러나, 상기 서버 130는 ACK이 수신되지 아니하면, 새로운 하향링크 패킷을 송신할 수 없다. 이 경우, 상기 도 1에 도시한 바와 같이, 첫 번째 ACK 패킷에 응답하여 첫 번째 데이터 패킷을 전송한 후, 일정 구간 동안 하향링크 데이터의 전송이 없는 하향 링크 대기 구간이 존재한다. 상기 하향 링크 대기(idle) 구간은 첫 번째 ACK 수신 후 두 번째 ACK이 수신되지 아니함으로 인해 발생한다. 즉, 비록 하향링크 대역폭에 여유가 있더라도, 상향링크 ACK이 수신되지 아니함으로 인해, 새로운 하향링크 데이터가 전송되지 아니한다.
상술한 바와 같이, 상기 상향링크 채널 104의 대역폭 제약에 의해 상기 단말 110에 버퍼링된 ACK 패킷의 지연이 증가하면, 버퍼링 지연만큼 TCP(Transport Control Protocol)의 ACK 클럭킹이 지연된다. 이로 인해, 상기 하향링크 채널 102의 대기시간이 발생하고, 상기 하향링크 대기 시간이 증가한 만큼 하향링크 처리율(throughput)이 감소할 수 있다.
상기 단말 110의 버퍼링에 의한 ACK 패킷 지연 시간을 줄이기 위한 방안으로서, 상기 단말 110의 상향링크 데이터 전송 속도를 감소시키는 것이 사용될 수 있다. 상기 상향링크 데이터 전송 속도가 감소하면, 버퍼링되는 상향링크 데이터 패킷의 양이 감소하고, 이에 따라, 상대적으로 ACK 패킷이 상기 버퍼 115에서 대기하는 시간이 감소될 수 있다. 이를 위해, 상기 서버 130는 상기 단말 110로 송신하는 TCP의 흐름 제어 파라미터를 통해 상기 단말 110의 상향링크 데이터 전송 속도를 조절할 수 있다. 상기 제어 파라미터는 상기 단말 110의 상향링크 데이터 전송 속도의 결정에 사용되는 정보를 포함한다. 예를 들어, 상기 제어 파라미터는 상기 서버 130의 수신 버퍼 크기를 포함할 수 있다. 즉, 상기 단말 110은 상기 서버 130의 수신 버퍼 크기를 고려하여 상향링크 전송을 스케줄링한다. 따라서, 상기 서버 130가 상기 단말 110로 상기 수신 버퍼 크기를 이전보다 감소된 값으로 알리면, 상기 단말 110은 상향링크 전송률을 감소시키게 된다.
상술한 바와 같은 전송률 제어를 위해, 본 발명의 실시 예에 다른 통신 시스템은 하기 도 2와 같은 망 엔티티(network entity)를 포함할 수 있다. 도 2는 본 발명의 실시 예에 따른 전송률을 제어하기 위한 장치의 블록도를 도시한다. 설명의 편의를 위해, 본 발명의 다양한 실시 예들에 따라 전송률을 제어하는 장치는 ‘전송 제어부’라 지칭될 수 있다.
상기 도 2를 참고하면, 상기 전송 제어부 220는 성향(trend) 검출부 222 및 제어 파라미터 결정부 224를 포함할 수 있다. 상기 전송 제어부 220는 상기 성향 결정부 222를 통해, 상기 단말 110에서 상기 서버 130로의 상향링크 방향 지연, 상기 단말 110과 상기 서버 130 사이의 왕복 시간(RTT: round trip time), 데이터 패킷의 수신 속도를 통해 추정된 버퍼링 지연의 성향을 검출한다. 상기 전송 제어부 220는 파라미터 결정부 224를 통해, 추정된 버퍼링 지연과 상향링크의 가용 대역폭, 상기 성향 결정부 222로부터 수신한 상기 버퍼링 지연의 성향을 사용하여 현재 네트워크 상황에 최적화된 TCP 제어 파라미터를 결정한다. 예를 들어, 상기 제어 파라미터는 상기 서버 130의 수신 버퍼 크기를 포함할 수 있다.
도 3은 본 발명의 실시 예에 따른 도 2의 장치를 포함한 전송률을 제어하기 위한 장치의 블록도를 도시한다. 상기 도 3은 상기 전송 제어부 220를 포함하는 어플리케이션 서버 또는 프록시(proxy) 서버의 구성을 예시한다.
상기 도 3을 참고하면, 상기 장치는 통신부 310, 저장부 320, 제어부 330를 포함한다.
상기 통신부 310는 신호를 송수신하기 위한 기능을 수행한다. 즉, 상기 통신부310는 상기 제어부 330 및 저장부 320로부터 제공되는 신호를 송수신한다. 이에 따라 상기 통신부 310는 송신부, 수신부, 송수신부 또는 통신부로 지칭될 수 있다.
상기 저장부 320는 상기 통신 시스템에서 전송률 제어를 위한 장치의 동작을 위한 기본 프로그램, 응용 프로그램,설정 정보 등의 데이터를 저장한다. 특히, 상기 저장부 320는 패킷 정보를 저장할 수 있다. 그리고, 상기 저장부 320는 상기 제어부 330의 요청에 따라 저장된 데이터를 제공한다.
상기 제어부 330는 상기 통신 시스템에서 전송률 제어를 위한 장치의 전반적인 동작들을 제어한다. 예를 들어, 상기 제어부 330는 상기 통신 시스템에서 전송률 제어를 위한 장치가 상기 도 6 내지 도 9에 도시된 절차를 수행하도록 제어한다. 상기 제어부 330는 상기 통신 시스템에서 전송률 제어를 위해 전송 제어부 220를 통해 전송률 제어를 실시 할 수 있다. 본 발명의 실시 예에 따라 상기 전송 제어부 220의 동작은 다음과 같다.
상기 전송 제어부 220는 변경 가능한 주기(T) 마다 수신되는 패킷들의 평균 단방향 지연을 계산한다. 또한, 매 주기마다 도착하는 데이터 패킷의 평균 수신 속도를 계산하고, 최소 왕복 시간 값을 계산한다. 상기 전송 제어부 220는 단방향 지연 값의 최소값을 갱신한다. 상기 전송 제어부 220는 각 패킷에 전송되기 전에 단말의 버퍼에서 지연된 버퍼링 지연과 평균 버퍼링 지연을 계산한다. 상기 전송 제어부 220는 한 주기 동안에 측정된 버퍼링 지연에 대한 성향을 검출한다. 상기 전송 제어부 220는 버퍼링 지연과 임계값의 크기를 비교한다. 만일 상기 버퍼링 지연이 임계값보다 클 경우 상기 전송 제어부 220는 버퍼링 지연에 대한 성향을 확인한다. 만일 상기 성향이 제1타입으로 판단되면 상기 전송 제어부 220는 제어 파리미터 값을 갱신한다. 상기 전송 제어부 220는 상기 제어 파라미터 값을 갱신한다. 만일 상기 성향의 판단 결과 성향이 제3타입일 경우, 상기 전송 제어부 220는 확률 변수를 이용하여 파라미터 값을 조절할 수 있다. 만약 상기 성향이 제3타입일 경우, 상기 전송 제어부 220는 상향링크 방향 혼잡이 예상되긴 하지만 현재 버퍼링 지연이 계속 악화되는 것은 아니라고 판단할 수 있다. 따라서, 현재 혼잡을 완화하는 것은 필요하지만 또한 단말 버퍼의 언더런(under run) 가능성을 줄이기 위해 평균이 p 인 확률분포를 사용하여 패킷의 제어 파라미터 값을 상향링크의 전송율로 줄인다. 상기 확률분포를 사용하여 파라미터 값을 제어할 경우, 일정 확률에 따라 파라미터 값이 변경됨에 따라 제어 파라미터 값이 고정되어 있는 경우보다 더욱 유연하게 전송률 제어를 실시할 수 있다. 본 발명의 일 실시 예에 따르면 p=0.5 인 균등 분포를 사용할 수 있다. 본 발명의 다른 실시 예에 따라, 상기 전송 제어부는 다른 p 값을 사용할 수 있고, 지수 분포(Exponential distribution), 파레토 분포(Pareto distribution)등 다른 확률 분포도 사용할 수 있다.
만일 상기 성향의 판단 결과 성향이 제1타입 또는 제3타입이 아닐 경우, 즉, 제2타입일 경우, 상기 전송 제어부 220는 현재의 제어 파라미터 값을 유지한다.
만일 상기 버퍼링 지연이 임계값보다 크지 않을 경우, 즉, 상기 버퍼링 지연이 상기 임계값 보다 작거나 같을 경우, 상기 전송 제어부 220는 성향을 확인하고, 상기 버퍼링 지연에 대한 성향이 제1타입일 경우 현재의 제어 파라미터 값을 유지한다. 만일 상기 성향이 제2타입일 경우, 상기 전송 제어부 220는 설정된 값 만큼 제어 파라미터를 증가시킨다. 만일 상기 성향이 제3타입일 경우, 상기 전송 제어부 220는 확률 변수를 이용하여 제어 파라미터를 증가시킨다. 상기 전송 제어부 220는 상기 성향이 제3타입일 경우, 일부 패킷에 대해서만 제어 파라미터 값을 증가시켜 혹시 있을 수도 있는 상향링크 혼잡 상황으로 즉각적인 상태 변화가 일어나는 것을 방지한다. 이를 위해, 평균이 p 인 어떤 확률분포를 사용하여 일부 패킷의 제어파라미터 값을 증가시킨다. 본 발명의 일 실시 예에 따르면 p=0.5 인 균등 분포를 사용할 수 있다. 본 발명의 다른 실시 예에 따라, 상기 전송 제어부 220는 다른 p 값을 사용할 수 있고, 지수 분포, 파레토 분포 등 다른 확률 분포도 사용할 수 있다.
상기 전송 제어부 220는 다양한 실시 예들에 따라 통신 시스템을 구성하는 어느 하나의 엔티티에 포함될 수 있다. 예를 들어, 상기 전송 제어부 220는 이하 도 4와 같이, 프록시 서버 또는 어플리케이션 서버에 포함될 수 있다. 도 4는 본 발명의 실시 예에 따른 통신 시스템의 구성을 도시한다.
상기 도 4를 참고하면, 본 발명의 실시 예에 따른 통신 시스템은 단말 110, eNB(evolved Node B) 410, EPC(Evolved Packet Core)) 420, 서버 430, 어플리케이션 서버 440를 포함할 수 있다. 상기 eNB 410은 상기 단말 110의 엑세스 노드이다. 상기 EPC 420는 접속 망으로서, 서빙 게이트웨이(Serving Gateway), 패킷 게이트웨이(Packet Gateway) 및 PCRF(Policy and Charging Rules Function) 중 적어도 하나를 포함할 수 있다. 상기 서버 430는 사용자에게 제공하는 비디오 또는 웹 컨텐츠 등과 같은 애플리케이션 트래픽의 전송 성능을 개선하기 위한 엔티티이다. 상기 어플리케이션 서버 440는 상기 단말 110로 제공되는 어플리케이션 레벨의 서비스를 제공하는 엔티티이다.
본 발명의 일 실시 예에 따라, 상기 서버 430는 통신 사업자 또는 통신 사업자의 허가를 받은 컨텐트 제공자(content provider)가 애플리케이션 서비스 향상과 네트워크 자원의 효율적인 사용을 목적으로 무선망에 배치될 수 있다. 상기 서버 430는 프록시 서버(proxy server)라 지칭될 수 있다. 상기 서버 430는 예를 들어, CDN(Content Delivery Network)의 에지 서버(edge server) 기능, 캐싱(caching) 기능, TCP 프록시(proxy) 기능, 혹은 다른 다양한 트래픽 최적화 기능을 제공할 수 있으며 상기 접속 망에 별도 장비 형태로 구비되거나 기존 접속 망 장비에 그 기능이 통합될 수도 있다. 상기 서버 430는 접속 망에 별도 장비 형태로 구비되거나 기존 무선망 장비에 기능이 통합될 수 있다.
본 발명의 일 실시 예에 따라, 상기 도 4a에 도시된 바와 같이, 상기 서버 430는 애플리케이션 트래픽의 전송 성능을 개선하기 위하여 상기 전송 제어부 220를 포함할 수 있다. 그리고, 상기 서버 430는 기지국의 셀 사이트(cell-site)에 위치할 수 있다. 상기 서버 430는 기지국의 셀 사이트 또는 여러 기지국이 모여 집중화된 지역(centalized RAN site)에 배치될 수 있다. 특히, 본 발명의 실시 예에 따른 상기 기지국 주변에 배치된 상기 서버 430는 상기 단말 110 TCP의 상향링크 데이터 전송 속도를 줄여 ACK 패킷이 상기 단말 110 버퍼에서 상향링크 데이터 패킷에 의해 버퍼링되는 시간을 줄일 수 있다.
본 발명의 다른 실시 예에 따라, 상기 도 4b에 도시된 바와 같이, 상기 서버 430는 코어 사이트(core-site)에 배치될 수 있다. 상기 코어 사이트에 배치된 상기 서버 430는 상기 단말 110 TCP의 상향링크 데이터 전송 속도를 줄여 ACK 패킷이 상기 단말 110 버퍼에서 상향링크 데이터 패킷에 의해 버퍼링되는 시간을 줄일 수 있다.
본 발명의 또 다른 실시 예에 따라, 상기 도 4c에 도시된 바와 같이, 상기 서버 430가 존재하지 아니하고, 서비스 제공자의 어플리케이션 서버 440가 상기 전송 제어부 220를 포함할 수 있다. 상기 어플리케이션 서버 440에 포함된 상기 전송 제어부 220는 상기 단말 110 TCP의 상향링크 데이터 전송 속도를 줄여 ACK 패킷이 상기 단말 110 버퍼에서 상향링크 데이터 패킷에 의해 버퍼링되는 시간을 줄일 수 있다.
상술한 바와 같이, 본 발명의 다양한 실시 예들에 따라, 상기 전송 제어부 220는 셀 사이트 또는 코어 사이트에 배치된 별도의 서버(예: 프록시 서버)에 포함되거나, 또는, 서비스를 제공하는 어플리케이션 서버에 포함될 수 있다. 이하 설명의 편의를 위해, 본 발명은 상기 전송 제어부 220가 별도의 엔티티인 상기 서버 430로 구성된 경우를 예로 들어 설명한다. 그러나, 본 발명은 상기 전송 제어부 220가 상기 어플리케이션 서버에 포함된 경우에도 동일하게 적용될 수 있다.
본 발명의 다양한 실시 예들에 따라 전송률을 제어하기 위해, 상기 전송 제어부 220는 단방향 패킷 지연 및 왕복 시간을 이용할 수 있다. 상기 단방향 패킷 지연 및 상기 왕복 시간은 하기 도 5와 같이 결정될 수 있다.
도 5는 본 발명의 실시 예에 따른 단방향 패킷 지연 측정 및 왕복 시간 측정을 도시한다. 상기 도 5는 상기 단말 110에서 상기 서버 430로 데이터를 전송(uploading)하는 경우, 상기 단말 110 내에서의 패킷 버퍼링 지연을 상기 서버 430에서 측정하기 위한 과정을 예시한다.
상기 도 5를 참고하면, 상기 서버 430는 상기 단말 110로부터의 데이터 패킷(미도시)에 응답하여 ACK 패킷을 하향링크로 송신한다. 상기 단말 110은 상기 하향링크 ACK 패킷에 대한 응답으로 데이터 패킷(도면에서 X로 표시)을 버퍼에 입력한다. 이후, 상기 X로 표시된 데이터 패킷 보다 먼저 상기 버퍼에 입력된 상향링크 패킷들(도면에서 빗금친 부분)이 모두 전송되면, 상기 X로 표시된 데이터 패킷이 상기 서버 430로 송신된다. 그리고, 상기 서버 430는 상기 X로 표시된 데이터 패킷을 수신한다.
여기서, 상기 서버 430에서 상기 단말 110로, 즉, 하향링크로, ACK 패킷을 전송한 시점을 ACK 패킷 전송 시간 551으로, 상기 단말 110이 상기 하향링크 ACK 패킷을 수신한 시점을 ACK 패킷 수신 시간 552로, 상기 단말 100이 X로 표시된 데이터 패킷을 버퍼에 입력한 시점을 553으로, 상기 단말 110에서 상기 데이터 패킷이 송신된 시점을 데이터 패킷 전송 시간 555으로, 상기 서버 430에서 상기 데이터 패킷을 수신한 시점을 데이터 패킷 수신 시간 557로 정의할 수 있다. 이 경우, 상기 왕복 시간(RTT) 560은 상기 ACK 패킷 전송 시간 551로부터 상기 데이터 패킷 수신 시간 557까지의 시간 길이로 정의된다. 또한, 버퍼링 지연 Bk 580은 상기 X로 표시된 데이터 패킷이 버퍼에 입력된 시간 553으로부터 이 패킷이 전송된 시간 555 까지의 시간 길이로 정의된다. 그리고, 상기 X로 표시된 데이터 패킷 전송 시간 555으로부터 이 패킷이 서버에 수신된 수신 시간 557까지의 시간 길이는 상향링크 패킷을 전송하는데 소요되는 상향링크 전송 지연(transmission delay) 시간 DUL 590로 정의된다. 상기 버퍼링 지연 BK 580과 상기 상향링크 전송 지연 시간 DUL을 합산한 값은 단방향 패킷 지연 시간 ZK 570으로 정의된다. 상기 패킷 지연 시간 Zk 570는 상기 패킷 수신 시간 557에서 상기 패킷이 버퍼에 입력된 시간 553을 뺀 값이다.
도 6은 본 발명의 실시 도 6은 본 발명의 실시 예에 따른 전송률 제어를 위한 과정의 흐름을 도시한다. 상기 도 6은 상기 서버 430의 동작 방법을 예시한다.
상기 도 6을 참고하면, 610 단계에서, 상기 서버 430는 단말로부터의 단방향 패킷 지연 시간을 검출한다. 이 때, 상기 단방향 패킷 지연 시간은 상기 단말의 버퍼링 지연과 상기 단말의 상향링크 전송 시간을 합산한 것과 동일하다. 상기 서버 430는 TCP의 타임 스탬프(time stamp) 옵션이 사용될 경우, 상기 서버는 상기 단말로부터 데이터 패킷을 수신한 시간과 상기 단말이 전송을 위해 그 데이터 패킷을 버퍼에 입력한 시간의 차이를 이용하여 상기 단방향 패킷 지연을 검출하고, 만약 TCP 타임 스탬프(time stamp) 옵션이 사용되지 않을 경우, 상기 단말과 상기 서버와의 패킷 왕복 시간(RTT)을 상기 단방향 패킷 지연으로 설정하고, 이 때, 상기 왕복 시간은 상기 서버가 상기 단말로 패킷을 전송한 시간과, 상기 단말로부터 상기 패킷에 대한 응답 신호를 수신한 시간의 차이를 이용한다.
620 단계에서, 상기 서버 430는 버퍼링 지연의 성향을 결정한다. 상기 서버 430는 상기 단방향 패킷 지연을 이용하여 버퍼링 지연을 결정할 수 있다. 상기 서버 430는 상기 단방향 패킷 지연과 상기 단방향 패킷 지연의 최소값의 차이를 이용하여 상기 버퍼링 지연을 결정할 수 있다. 상기 서버 430는, 상기 버퍼링 지연이 증가하는 추세를 보일 경우 상기 버퍼링 지연의 성향을 제 1타입으로 결정하고, 상기 버퍼링 지연이 증가하지 않는 추세를 보일 경우 제 2타입으로 결정하고, 상기 버퍼링 지연의 증가 또는 증가하지 않는 추세가 불분명 할 경우 제 3타입으로 결정할 수 있다.
630 단계에서, 상기 서버 430는 버퍼링 지연의 성향에 따라 전송률 제어를 위한 파라미터 값을 제어한다.
상기 버퍼링 지연이 어떤 미리 설정된 임계값 보다 클 경우 본 발명의 실시 예에 따른 상기 서버는 다음과 같이 전송률 제어를 위한 파라미터 값을 제어한다. 상기 서버 430는, 결정된 상기 버퍼링 지연의 성향이 제 1 타입인 경우 상향링크 패킷 수신 속도와 상기 서버에서 측정된 왕복 시간의 최소값의 곱을 이용하여 제어 파라미터를 결정한다. 만일, 결정된 상기 버퍼링 지연의 성향이 제 2 타입인 경우 현재의 제어 파라미터를 유지한다. 만일, 결정된 상기 버퍼링 지연의 성향이 제 3 타입인 경우 상향링크 패킷 수신 속도와 최소 왕복 시간의 곱을 이용하여 제어 파라미터를 결정한다.
다른 실시 예에 따르면 상기 서버 430는 상기 버퍼링 지연이 임계값 보다 크고, 결정된 상기 버퍼링 지연의 성향이 제 3 타입인 경우, 확률 변수를 이용하여 파라미터 값을 결정할 수 있다.
상기 버퍼링 지연이 임계값 보다 크지 않을 경우 상기 서버 430는 다음과 같이 전송률 제어를 위한 파라미터 값을 제어한다. 상기 서버 430는 결정된 상기 버퍼링 지연의 성향이 제 1 타입인 경우 현재의 제어 파라미터를 유지한다. 만일, 결정된 상기 버퍼링 지연의 성향이 제 2 타입인 경우 상기 서버 430는 현재의 제어 파라미터를 소정 값만큼 증가시킨다. 만일, 결정된 상기 버퍼링 지연의 성향이 제 3 타입인 경우 상기 서버 430는 현재의 제어 파라미터를 소정 값만큼 증가시킨다.
다른 실시 예에 따르면, 상기 서버 430는 버퍼링 지연이 임계값 보다 크지 않고, 결정된 상기 버퍼링 지연의 성향이 제 3 타입인 경우, 확률 변수를 이용하여 파라미터 값을 결정할 수 있다.
도 7은 본 발명의 실시 예에 따른 전송 제어 파라미터를 결정하기 위한 장치의 블록도를 도시한다. 상기 도 7은 상기 서버 430의 블록 구성을 예시한다.
상기 도 7을 참고하면, 상기 장치는, 패킷 수신부 710, 지연 및 수신 속도 측정부 720, 버퍼링 지연 추정부 730, 성향 결정부 740, 대역폭 추정부 750, 제어 파라미터 결정부 760, 패킷 전송부 770를 포함할 수 있다.
상기 패킷 수신부 710는 상기 단말 110로부터 송신된 상향링크 데이터 패킷 및 ACK 패킷을 수신한다. 즉, 상기 패킷 수신부 710은 상기 장치가 외부 장치와 통신을 수행하기 위한 인터페이스를 제공한다.
상기 지연 및 수신 속도 측정부 720는 상기 패킷 수신부 710를 통해 상기 단말 110로부터 수신된 패킷을 사용하여 상기 단말 110에서 상기 서버 430로의 단방향 패킷 지연, 상기 단말 110과 상기 서버 430 사이의 왕복 시간, 상기 단말 110에서 송신한 상향링크 데이터 패킷의 수신 속도를 측정할 수 있다.
상기 버퍼링 지연 추정부 730는 측정된 단방향 패킷 지연 또는 상기 왕복 시간을 사용하여 패킷이 단말에서 버퍼링 된 시간을 간접적으로 추정할 수 있다. 상기 성향 결정부 740는 추정된 상기 버퍼링 지연의 성향을 검출한다. 상기 대역폭 추정부 750는 측정된 패킷의 수신 속도에 기반하여 가용한 상향링크 대역폭을 추정한다.
상기 제어 파라미터 결정부 760는 추정된 상기 버퍼링 지연과 상향링크의 가용 대역폭, 상기 버퍼링 지연의 성향을 사용하여 현재 네트워크 상황에 최적화된 TCP 제어 파라미터를 결정한 후 상기 패킷 전송부 770를 통해 정보를 단말로 전송할 수 있다.
상기 지연 및 수신 속도 측정부 720의 동작은 TCP의 타임 스탬프(time stamp) 옵션의 사용 여부에 따라 달라질 수 있다. 만일, 타임 스탬프 옵션이 사용되는 경우, 상기 단말 410과 상기 서버 430의 전송 계층은 송신 시간을 나타내기 위해 현재 시간을 패킷 헤더의 관련 필드에 기록한다. 또한, 상기 전송 계층은 수신한 패킷의 헤더에 기록되어 있는 수신 패킷의 전송 시간을 복사하여 현재 보내는 패킷의 관련 필드에 기록한다. 보다 구체적으로, 상기 단말 410과 상기 서버 430의 전송 계층은 전송을 위해 패킷을 버퍼로 보내기 전에 현재 시간을 패킷 헤더의 관련 제1필드(예: TSval)에 기록하고, 수신한 패킷의 제1필드에 기록된 값은 패킷 헤더의 제2필드(예: TSecr)에 기록한다. 예를 들어, 상기 단말 110은 패킷 X의 상기 제1필드에 현재 시간(Ts=Xi)을 그 패킷의 송신 시간으로 기록하고, 전송을 위해 버퍼에 입력한다. 버퍼링된 상기 패킷 X는 버퍼링된 시간 bk 이후에 접속 망을 통해 상기 서버 430에 전송된다. 상기 패킷 X가 상기 서버 430에 수신되면, 상기 서버 430의 전송 계층은 상기 패킷 X의 현재 수신 시간(Tr=Yj +1)을 기록한다. 이 경우, 상기 패킷 X의 상향링크 단방향 패킷 지연 시간 Zk는 하기 <수학식 1>과 같이 결정될 수 있다. 즉, 상기 단방향 패킷 지연 시간 Zk는 상기 패킷 X의 현재 수신 시간(Tr)에서 상기 패킷 X의 송신 시간(Ts)을 감산함으로써 결정될 수 있다. 즉, 상기 패킷 지연 시간 Zk는 하기 <수학식 1>과 같이 결정될 수 있다.
Figure 112015040881225-pat00001
상기 <수학식1>에서, 상기 Zk는 패킷 지연 시간, 상기 Yj + 1는 상기 서버 430가 상기 단말 110로부터 데이터 패킷을 수신한 시간, 상기 Xi는 상기 단말 110이 상기 서버 430로부터 ACK 패킷을 수신한 시간, bk는 상기 단말의 버퍼링 시간, DUL은 상향링크 전송 시간을 의미한다.
또한, 상기 패킷의 왕복 시간의 경우, 상기 서버 430가 매 패킷이 수신될 때 마다 패킷의 수신 시간을 기록하고, 현재 패킷의 수신 시간 및 이전 패킷의 수신 시간의 차이를 결정함으로써, 상기 왕복 시간을 산출할 수 있다. 상기 패킷의 왕복 시간은 하기 <수학식 2>와 같이 결정될 수 있다.
Figure 112015040881225-pat00002
상기 rttk는 패킷의 왕복 시간, Yj + 1는 패킷의 현재 수신 시간, Yj는 상기 서버 430가 상기 단말 110로 패킷을 전송한 시간을 나타낸다.
또한, 상기 지연 및 수신 속도 측정부 720는 미리 결정된 주기 동안 수신된 패킷의 개수를 이용하여 수신 속도를 측정할 수 있다. 예를 들어, 상기 수신 속도 Rk는 하기 <수학식 3>에 의해 결정될 수 있다. 여기서, 상기 패킷의 크기는 동일하다고 가정한다.
Figure 112015040881225-pat00003
상기 <수학식 3>에서, rk는 수신 속도, 상기 MSS는 바이트(byte)로 나타낸 최대 세그먼트 크기(maximum segment size), T는 수신 속도 측정 주기(시간), M은 하나의 주기 동안 수신된 패킷의 개수를 나타낸다.
상술한 지연 및 수신 속도 측정부 720의 패킷 지연 시간을 결정하는 동작은 상기 TCP 타임 스탬프가 사용될 경우에 수행될 수 있다. 만일, 상기 타임 스탬프가 사용되지 않을 경우, 상기 지연 및 수신 속도 측정부 720의 동작은 다음과 같다. 리눅스(linux)를 포함한 다수의 현대 운영체제(operating system, OS)는 왕복 시간을 포함한 시간 측정을 용이하기 하기 위해 TCP 타임 스탬프 옵션을 사용하지만, 모든 OS 버전이 상기 타임 스탬프 옵션을 사용하지는 않는다. 따라서, 상기 타임 스탬프 옵션이 오프(off)이면, 본 발명의 다른 실시 예에 따른 상기 서버 430는 상기 단방향 패킷 지연 시간을 별도로 측정하지 않고, 상기 왕복 시간을 상기 단방향 패킷 지연 시간으로서 사용할 수 있다.
상기 버퍼링 지연 추정부 730는 상기 단말 110에서 패킷이 전송되기 전에 버퍼링된 시간을 추정한다. 상기 도 5를 참고하면, 패킷 지연 시간 Zk 570은 패킷이 전송 버퍼에 입력되기 전에 기록된 송신 시간 553과 상기 패킷이 상기 서버 430에 수신된 시간 557의 차와 같다. 만일, 패킷이 상기 단말 110에서 버퍼링되지 아니한 경우, 다시 말해, 버퍼링 지연 bk 580가 0일 경우, 단방향 패킷 지연 시간 Zk 570는 전송 지연 시간 DUL 590과 동일하다. 따라서, 본 발명의 실시 예에 따른 서버 430는 측정된 다수의 패킷 지연 시간들 중 최소 값을 상기 버퍼링 지연이 0인 경우의 전송 지연 시간 min(Zk)로 가정하고, 상기 최소 값에 기초하여 상기 버퍼링 지연을 결정할 수 있다. 예를 들어, 상기 단말 110의 버퍼링 지연은 하기 <수학식 4>와 같이 결정될 수 있다.
Figure 112015040881225-pat00004
상기 수학식에서, bk는 버퍼링 시간, 상기 Zk는 단방향 패킷 지연 시간, 상기 min(Zk)는 상기 Zk의 최소값을 의미한다.
상기 성향 결정부 740는 변경이 가능한 미리 결정된 각 측정 주기에 추정된 버퍼링 지연이 어떠한 성향을 갖는지 검출한다. 여기서, 상기 성향은 버퍼링 지연이 증가함을 지시하는 “제1타입(type)”, 버퍼링 지연이 증가 하지 아니함을 지시하는 "제2타입”, 버퍼링 지연의 증가 여부가 분명하지 아니함을 지시하는 "제3타입" 중 하나로 결정될 수 있다. 상기 제1타입은 "증가(increasing)", 상기 제2타입은 “비증가(non-increasing)", 상기 제3타입은 “모호(ambiguous)”로 지칭될 수 있다.
본 발명의 실시 예에 따르면, 성향은 다수의 패킷들에 대한 패킷 지연 시간들에 기초하여 결정될 수 있다. 구체적으로, 상기 성향은 하나의 측정 주기 내에서 증가하는 경향을 나타내는 샘플(예: 버퍼링 지연)의 비율을 정량화하거나, 또는, 하나의 측정 주기에 포함된 첫 번째 샘플 및 마지막 샘플 사이의 차이를 정량화함으로써 추정될 수 있다. 여기서, 하나의 측정 주기 내에서 증가하는 경향을 나타내는 샘플의 비율을 정량화한 정보는 ‘비교 메트릭 CM’, 상기 하나의 측정 주기에 포함된 첫 번째 샘플과 마지막 샘플 사이의 차이를 정량화한 정보는 ‘차분 메트릭 DM’로 지칭될 수 있다.
예를 들어, 상기 비교 메트릭 CM은 하기 <수학식 5>와 같이 결정될 수 있다.
Figure 112015040881225-pat00005
상기 <수학식 5>에서, 상기 CM은 상기 비교 메트릭, 상기 n은 한 주기 내의 샘플 수, I(Y)는 지시 함수로, 괄호 안의 Y가 성립하면 함수값은 1, 그렇지 않을 경우 함수값은 0이 된다. 상기 비교 메트릭은 0 과 1 사이의 값을 가지며, 즉, 0≤CM≤1 이고, 만일 각 샘플이 서로 독립이면 상기 비교 메트릭의 기대값(expectation) E[CM]=0.5이고, 증가하는 경향이 클 수록 상기 비교 메트릭의 값은 1에 더 가까워 진다.
상기 차분 메트릭 DM은 하기 <수학식 6>과 같이 결정될 수 있다.
Figure 112015040881225-pat00006
상기 <수학식 6>에서, 상기 DM은 차분 메트릭, 상기 n은 한 주기 내의 샘플 수, 상기 Xn는 n번째의 샘플 값을 나타낸다.
상기 차분 메트릭은 -1과 1 사이의 값을 가지며, 즉, -1≤DM≤1의 값을 가지며, 만일 각 샘플이 서로 독립이면 상기 차분 메트릭의 기대값 E[DM]=0이고, 증가하는 경향이 클 수록 상기 차분 메트릭의 값은 1에 더 가까워 진다.
상기 성향을 결정하기 위해, 상기 비교 메트릭 또는 상기 차분 메트릭 중 하나가 사용될 수 있다.
예를 들어, 상기 비교 메트릭이 이용되는 경우, 상기 성향은 CM>cm1 이면 제1타입, CM<cm2 이면 제2타입, 그렇지 않으면, 즉, cm2≤CM≤cm1이면, 제3타입으로 결정된다. 여기서, 상기 cm1 및 cm2는 상기 성향 판단을 위한 임계치로서, 구체적인 실시 예들에 따라 달라 수 있다. 예를 들어, 상기 cm1은 0.66, 상기 cm2은 0.54로 설정될 수 있다.
다른 예로, 상기 차분 메트릭이 이용되는 경우, 상기 성향은 DM>dm1 이면 제1타입, DM<dm2이면 제2타입m 그렇지 않으면, 즉, dm2≤DM≤dm1이면, 제3타입이라고 결정한다. 여기서, 상기 dm1 및 dm2는 상기 성향 판단을 위한 임계치로서, 구체적인 실시 예들에 따라 달라 수 있다.
또 다른 예로, 상기 비교 메트릭 및 상기 차분 메트릭이 함께 사용될 수 있다. 구체적으로, CM 또는 DM 중 어느 하나가 제1타입 경향을 보이고, 다른 하나는 제1타입 또는 제3타입을 보이면, 상기 성향은 제1타입으로 결정된다. 만일 CM 또는 DM 중 어느 하나가 제2타입 경향을 보이고, 다른 하나는 제2타입 또는 제3타입을 보이면, 상기 성향은 제2타입으로 결정된다. 만일 CM 및 DM 둘 다 제3타입이거나, 또는 둘 중 하나는 제1타입이고, 다른 하나는 제2타입이면, 상기 성향은 제3타입으로 결정된다.
또한, 컴퓨팅 장비인 전송 최적화 노드의 OS의 컨텍스트 스위칭(context switching)과 네트워크 인터페이스 하드웨어의 인터럽트 지연 등에 의한 측정 에러를 마스킹(masking) 하고 좀 더 안정적인 트렌드 분석을 위해 측정된 타임시리즈(time-series) 데이터에 포함된 잡음(noise) 성분을 제거하는 처리를 할 수도 있다. 예를 들어, 잡음 제거(de-noising) 기법 중 하나인 웨이브릿 분해(wavelet decomposition)를 적용하여 버퍼링 지연에 포함된 잡음을 먼저 제거한 후 상기 비교 테스트 및 차분 테스트를 적용할 수도 있다.
도 8은 본 발명의 실시 예에 따른 전송률 제어 파라미터 조절을 위한 과정의 흐름을 도시한다. 상기 도 8은 상기 서버 430의 동작 방법을 예시한다. 상기 도 8에 도시된 절차는 일정 주기마다 수행될 수 있다. 다시 말해, 상기 도 8에 도시된 절차는 다수의 패킷들이 수신되는 주기 마다 수행될 수 있다.
상기 도 8을 참고하면, 801 단계에서, 상기 서버 430는 상기 서버 430에 수신되는 패킷들의 평균 단방향 지연을 계산한다. 이를 위해, 상기 서버 430는 각 패킷들에 대한 순시적인 단방향 지연들을 결정한 후, 상기 단방향 지연들의 평균을 산출할 수 있다. 또한, 상기 서버 430는 상기 서버 430에 도착하는 데이터 패킷의 평균 수신 속도를 계산하고, 최소 왕복 시간 값을 계산한다.
803 단계에서, 상기 서버 430는 단방향 지연 값의 최소값을 갱신한다. 즉, 상기 서버 430는 현재 주기 동안 측정된 단방향 지연들 중 최소값을 확인하고, 이전 주기에서 사용된 최소값을 현재 주기의 최소값으로 갱신한다.
805 단계에서, 상기 서버 430는 상기 단말 110의 버퍼에서 지연된 각 패킷의 버퍼링 지연 및 평균 버퍼링 지연을 계산한다. 예를 들어, 상기 서버 430는 각 패킷의 단방향 지연들에서 상기 최소값을 감산함으로써, 상기 각 패킷의 버퍼링 지연들을 결정하고, 상기 버퍼링 지연들의 평균을 산출할 수 있다.
807 단계에서 상기 서버 430는 현재 주기 동안에 측정된 버퍼링 지연에 대한 성향을 검출한다. 상기 서버 430는 상기 버퍼링 지연들에 기초하여 상기 성향을 결정할 수 있다. 예를 들어, 상기 서버 430는 현재 주기 내에서 버퍼링 지연이 증가하는 비율을 정량화하거나, 또는, 현재 주기에서 측정된 첫 번째 패킷의 버퍼링 지연 및 마지막 패킷의 버퍼링 지연의 차이를 정량화함으로써 상기 성향을 결정할 수 있다. 구체적으로, 상기 서버 430는 상기 <수학식 5> 또는 상기 <수학식 6>과 같은 메트릭들 중 적어도 하나를 결정하고, 상기 메트릭들 중 적어도 하나를 임계치와 비교함으로써, 상기 성향을 결정할 수 있다.
809 단계에서, 상기 서버 430는 평균 버퍼링 지연과 임계값의 크기를 비교한다. 만일, 상기 버퍼링 지연이 임계값 보다 클 경우, 상기 서버 430는 811 단계로 진행하여 버퍼링 지연에 대한 성향을 확인한다. 상기 성향이 제1타입 또는 제3타입이면, 상기 서버 430는 815 단계로 진행하여 제어 파라미터 값을 갱신한다. 여기서, 상기 제어 파라미터는 상기 서버 430의 수신 버퍼 크기를 포함할 수 있다. 상기 수신 버퍼 크기는 수신 윈도우(receive window) 크기라 지칭될 수 있다. 예를 들어, 상기 서버 430는 상기 제어 파라미터 값을 감소시킬 수 있다. 구체적으로, 상기 서버 430는 하기 <수학식 7>과 같이 상기 제어 파라미터 값을 갱신할 수 있다.
Figure 112015040881225-pat00007
상기 <수학식 7>에서, 상기 rwnd 는 제어 파라미터 값, 상기 R_bar는 상기 서버 430에 도착하는 데이터 패킷의 평균 수신 속도, 상기 RTT_min은 최소 왕복 시간을 의미한다.
상기 811 단계에서, 상기 성향이 제1타입 또는 제3타입이 아닐 경우, 즉, 상기 성향이 제2타입이면, 상기 서버 430는 817 단계로 진행하여 현재의 제어 파라미터 값을 유지한다.
상기 809 단계에서, 평균 버퍼링 지연이 임계값이 크지 않을 경우, 즉, 상기 평균 버퍼링 지연이 임계값 보다 작거나 같을 경우, 상기 서버 430는 813 단계로 진행하여 상기 버퍼링 지연에 대한 성향을 확인한다. 상기 성향이 제1타입이면, 상기 서버 430는 상기 817 단계로 진행하여 현재의 제어 파라미터 값을 유지한다. 반면, 상기 성향이 제1타입이 아닐 경우, 상기 서버 430는 819단계로 진행하여 상기 제어 파라미터 값을 증가시킨다. 이때, 상기 서버 430는 상기 제어 파라미터 값을 한 단계 증가시킬 수 있다.
상기 도 8에 도시된 절차를 표현하면 하기 <표 1>과 같다.
1. 주기(T)마다 수신된 Packet 들의 평균 단방향 지연 계산
(1) Z_bar = E[z_k(n)];
(2) R_bar = 8*E[s_k(n)]/T; //receive rate 측정
(3) RTT_min = min (min(rtt_k(n)), RTT_min);
2. Upadate Z_min
(1) Z_min_old = Z_min;
(2) Z_min = min(Z_min_old, min(z_k));
3. Compute buffering delay
(1) b_k = z_k - Z_min;
(2) B_bar = E[b_k(n)];
4. 한 주기 내 packet 들의 단방향 지연에 대한 trend 검출
(1) Cm & DM calculation;
(2) Trend detection based on CM & DM seprately;
(3) Based on each trend for CM & DM, determining trend in zk for each period;
5. B_bar와 trend를 사용하여 제어 파라미터 rwnd 조절
(1) If B_bar > Threshold,
a) If trend = "increasing" or "Ambiguous"
rwnd = R_bar*RTT_min;
b) else // Non-increasing
Do nothing;//현재 rwnd 유지
(2) If B_bar <= Threshold,
a) If trend = "increasing"
Do nothing;//현재 rwnd 유지
b) else // Non-increasing
rwnd = rwnd ++;
도 9는 본 발명의 실시 예에 따른 랜덤 확률 변수를 이용한 전송률 제어 파라미터 조절을 위한 과정의 흐름을 도시한다. 상기 도 9는 상기 서버 430의 동작 방법을 예시한다. 상기 도 9에 도시된 절차는 일정 주기마다 수행될 수 있다. 다시 말해, 상기 도 9에 도시된 절차는 다수의 패킷들이 수신되는 주기 마다 수행될 수 있다.
상기 도 9를 참고하면, 901 단계에서, 상기 서버 430는 상기 서버 430에 수신되는 패킷들의 평균 단방향 지연을 계산한다. 이를 위해, 상기 서버 430는 각 패킷들에 대한 순시적인 단방향 지연들을 결정한 후, 상기 단방향 지연들의 평균을 산출할 수 있다. 또한, 상기 서버 430는 상기 서버 430에 도착하는 데이터 패킷의 평균 수신 속도를 계산하고, 최소 왕복 시간 값을 계산한다.
903 단계에서, 상기 서버 430는 단방향 지연 값의 최소값을 갱신한다. 즉, 상기 서버 430는 현재 주기 동안 측정된 단방향 지연들 중 최소값을 확인하고, 이전 주기에서 사용된 최소값을 현재 주기의 최소값으로 갱신한다.
905 단계에서, 상기 서버 430는 상기 단말 110의 버퍼에서 지연된 각 패킷의 버퍼링 지연 및 평균 버퍼링 지연을 계산한다. 예를 들어, 상기 서버 430는 각 패킷의 단방향 지연들에서 상기 최소값을 감산함으로써, 상기 각 패킷의 버퍼링 지연들을 결정하고, 상기 버퍼링 지연들의 평균을 산출할 수 있다.
907 단계에서 상기 서버 430는 현재 주기 동안에 측정된 버퍼링 지연에 대한 성향을 검출한다. 상기 서버 430는 상기 버퍼링 지연들에 기초하여 상기 성향을 결정할 수 있다. 예를 들어, 상기 서버 430는 현재 주기 내에서 버퍼링 지연이 증가하는 비율을 정량화하거나, 또는, 현재 주기에서 측정된 첫 번째 패킷의 버퍼링 지연 및 마지막 패킷의 버퍼링 지연의 차이를 정량화함으로써 상기 성향을 결정할 수 있다. 구체적으로, 상기 서버 430는 상기 <수학식 5> 또는 상기 <수학식 6>과 같은 메트릭들 중 적어도 하나를 결정하고, 상기 메트릭들 중 적어도 하나를 임계치와 비교함으로써, 상기 성향을 결정할 수 있다.
909 단계에서 상기 서버 430는 버퍼링 지연과 임계값의 크기를 비교한다. 만일 상기 909 단계에서 상기 버퍼링 지연이 임계값 보다 클 경우 상기 서버 430는 911 단계에서 버퍼링 지연에 대한 성향을 확인한다. 반면, 만일 상기 909 단계에서 상기 버퍼링 지연이 임계값 보다 크지 아니한 경우, 상기 서버 430는 913 단계에서 버퍼링 지연에 대한 성향을 확인한다.
상기 911 단계에서의 판단 결과, 상기 성향이 제1타입이면, 상기 서버 430는 915 단계에서 제어 파리미터 값을 갱신한다. 여기서, 상기 제어 파라미터는 상기 서버 430의 수신 버퍼 크기를 포함할 수 있다. 상기 수신 버퍼 크기는 수신 윈도우(receive window) 크기라 지칭될 수 있다. 예를 들어, 상기 서버 430는 상기 제어 파라미터 값을 감소시킬 수 있다. 구체적으로, 상기 서버 430는 상기 <수학식 7>과 같이 상기 제어 파라미터 값을 갱신할 수 있다.
상기 911 단계에서의 판단 결과, 상기 성향이 제3타입이면, 상기 서버 430는 917 단계에서 확률 변수를 이용하여 파라미터 값을 조절할 수 있다. 즉, 상기 서버 430는 평균이 p 인 확률분포를 사용하여 패킷의 제어 파라미터 값을 조절할 수 있다. 본 발명의 일 실시 예에 따르면, 상기 서버 430는 p=0.5 인 균등 분포를 사용할 수 있다. 본 발명의 다른 실시 예에 따라, 상기 서버 430는 다른 p 값을 사용할 수 있고, 지수 분포, 파레토 분포 등 다른 확률 분포도 사용할 수 있다. 예를 들어, 상기 서버 430는 정의된 확률 분포에 따라 랜덤 수(random number)를 생성하는 함수를 이용하여 상기 제어 파라미터 값을 감소시킬지 여부를 판단한다. 구체적으로, 상기 서버 430는 상기 랜덤 수를 생성한 후, 상기 랜덤 수 및 확률 임계치의 비교 결과에 따라 상기 제어 파라미터 값을 감소시킬지 여부를 판단할 수 있다. 이때, 상기 감소 여부의 판단 결과는, 이용되는 확률 분포 및 상기 확률 임계치의 구체적인 값에 따라 달라질 수 있다. 상기 제어 파라미터 값을 감소시킬 것이 판단되는 경우, 상기 서버 430는 상기 <수학식 7>과 같이 상기 제어 파라미터 값을 갱신할 수 있다.
상기 911 단계에서의 판단 결과, 상기 성향이 제1타입 또는 제3타입이 아닐 경우, 즉, 제2타입일 경우, 919 단계에서 상기 서버 430는 현재의 제어 파라미터 값을 유지한다. 또한, 상기 913 단계에서의 판단 결과, 상기 성향이 제1타입이면, 상기 서버 430는 상기 919 단계에서 현재의 제어 파라미터 값을 유지한다.
상기 913 단계에서의 판단 결과, 상기 성향이 제2타입이면, 921 단계에서 상기 서버 430는 설정된 값 만큼 제어 파라미터를 증가시킨다. 이때, 상기 서버 430는 상기 제어 파라미터 값을 한 단계 증가시킬 수 있다.
상기 913 단계에서의 판단 결과, 상기 성향이 제3타입이면, 상기 서버 430는 923 단계에서 확률 변수를 이용하여 제어 파라미터를 증가시킨다. 이를 위해, 평균이 p(예: 0.5) 인 어떤 확률분포를 사용하여 일부 패킷의 제어파라미터 값을 증가시킨다. 다른 실시 예에서는 다른 p 값을 사용할 수 있고, 지수 분포, 파레토 분포 등 다른 확률 분포도 사용할 수 있다. 예를 들어, 상기 서버 430는 정의된 확률 분포에 따라 랜덤 수를 생성하는 함수를 이용하여 상기 제어 파라미터 값을 증가시킬지 여부를 판단한다. 구체적으로, 상기 서버 430는 상기 랜덤 수를 생성한 후, 상기 랜덤 수 및 확률 임계치의 비교 결과에 따라 상기 제어 파라미터 값을 증가시킬지 여부를 판단할 수 있다. 이때, 상기 증가 여부의 판단 결과는, 이용되는 확률 분포 및 상기 확률 임계치의 구체적인 값에 따라 달라질 수 있다. 상기 제어 파라미터 값을 증가시킬 것이 판단되는 경우, 상기 서버 430는 상기 제어 파라미터 값을 한 단계 증가시킬 수 있다.
상기 도 9에 도시된 절차를 표현하면 하기 <표 2>와 같다.
1. 주기(T)마다 수신된 Packet 들의 평균 단방향 지연 계산
(1) Z_bar = E[z_k(n)];
(2) R_bar = 8*E[s_k(n)]/T; //receive rate 측정
(3) RTT_min = min (min(rtt_k(n)), RTT_min);
2. Upadate Z_min
(1) Z_min_old = Z_min;
(2) Z_min = min(Z_min_old, min(z_k));
3. Compute buffering delay
(1) b_k = z_k - Z_min;
(2) B_bar = E[b_k(n)];
4. 한 주기 내 packet 들의 단방향 지연에 대한 trend 검출
(1) Cm & DM calculation;
(2) Trend detection based on CM & DM separately;
(3) Based on each trend for CM & DM, determining trend in zk for each period;
5. B_bar와 trend를 사용하여 제어 파라미터 rwnd 조절
(1) If B_bar > Threshold,
a) If trend = "increasing"
rwnd = R_bar*RTT_min;//다음 주기까지 모든 패킷에 대해서 적용
b) if trend = "ambiguous"
rwnd = R_bar*RTT_min with probability p;
c) else // No trend(보통 no queuing을 의미)
Do nothing;//현재 rwnd 유지

(2) If B_bar <= Threshold,
a) If trend = "increasing"
Do nothing;//현재 rwnd 유지
b) If trend = "Non-increasing"
rwnd = rwnd ++ ;//다음 주기까지 모든 패킷에 대해서 적용
c) else // "Ambiguos"
rwnd = rwnd ++ with probability p;
도면에는 도시되지 않았지만, 서버로부터 제어 정보를 수신하는 전자 장치는 서버로부터 제어 정보를 수신하고, 상기 제어 정보에 기초하여 상향링크 패킷을 송신하는 과정을 포함하고, 상기 제어 정보는, 상기 서버가 상기 전자 장치에 대한 패킷 전송 지연에 기초하여 버퍼링 지연에 대한 성향을 결정하고, 상기 성향에 따라 상기 전자 장치의 전송률을 제어하기 위해 생성된 것일 수 있다.
상기 패킷 전송 지연은, 상기 단말의 버퍼링 지연과 상기 단말의 상향링크 지연 전송 시간의 합산이고, 상기 버퍼링 지연은, 상기 패킷 전송 지연과 상기 패킷 전송 지연의 최소값의 차이를 이용하여 결정될 수 있다.
상기 성향은, 다수의 패킷들 각각의 이전 패킷 대비 버퍼링 지연의 증가 여부에 기초하여 결정되고, 이전 패킷 대비 상기 버퍼링 지연이 증가한 패킷의 비율이 임계값 보다 클 경우 상기 버퍼링 지연의 증가에 대응된다고 판단될 수 있다.
상기 성향은, 상기 다수의 패킷들 각각의 이전 패킷 대비 버퍼링 지연의 차이 값들, 첫 번째 패킷 및 마지막 패킷의 버퍼링 지연 차이 값에 기초하여 결정되고, 상기 서버가 수신한 패킷들 중 마지막으로 수신한 패킷의 버퍼링 지연과 가장 처음으로 수신한 패킷의 버퍼링 지연의 차이 값을, 각 패킷의 버퍼링 지연을 이전 패킷의 버퍼링 지연과 비교한 값들의 합으로 나눈 값이 임계값 보다 클 경우 상기 버퍼링 지연의 증가에 대응한다고 판단될 수 있다.
도면에는 도시되지 않았지만, 상기 서버로부터 제어 정보를 수신하는 전자 장치는, 서버로부터 제어 정보를 수신하는 수신부와, 상기 제어 정보에 기초하여 상향링크 패킷을 송신하는 송신부를 포함하고, 상기 제어 정보는, 상기 서버가 상기 전자 장치에 대한 패킷 전송 지연에 기초하여 버퍼링 지연에 대한 성향을 결정하고, 상기 성향에 따라 상기 전자 장치의 전송률을 제어하기 위해 생성된 것일 수 있다.
여기서, 상기 패킷 전송 지연은, 상기 단말의 버퍼링 지연과 상기 단말의 상향링크 지연 전송 시간의 합산이고, 상기 버퍼링 지연은, 상기 패킷 전송 지연과 상기 패킷 전송 지연의 최소값의 차이를 이용하여 결정될 수 있다.
여기서, 상기 성향은, 다수의 패킷들 각각의 이전 패킷 대비 버퍼링 지연의 증가 여부에 기초하여 결정되고, 이전 패킷 대비 상기 버퍼링 지연이 증가한 패킷의 비율이 임계값 보다 클 경우 상기 버퍼링 지연의 증가에 대응된다고 판단되는 것일 수 있다.
여기서, 상기 성향은, 상기 다수의 패킷들 각각의 이전 패킷 대비 버퍼링 지연의 차이 값들, 첫 번째 패킷 및 마지막 패킷의 버퍼링 지연 차이 값에 기초하여 결정되고, 상기 서버가 수신한 패킷들 중 마지막으로 수신한 패킷의 버퍼링 지연과 가장 처음으로 수신한 패킷의 버퍼링 지연의 차이 값을, 각 패킷의 버퍼링 지연을 이전 패킷의 버퍼링 지연과 비교한 값들의 합으로 나눈 값이 임계값 보다 클 경우 상기 버퍼링 지연의 증가에 대응한다고 판단되는 것일 수 있다.
본 발명의 청구항 또는 명세서에 기재된 실시 예들에 따른 방법들은 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어의 조합의 형태로 구현될(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 (30)

  1. 통신 시스템에서 서버의 동작 방법에 있어서,
    단말에 대한 패킷 전송 지연에 기초하여 버퍼링 지연에 대한 성향을 결정하는 과정과,
    상기 성향에 따라 상기 단말의 상향링크 전송률을 제어하기 위한 제어 정보를 결정하는 과정과,
    상기 제어 정보를 송신하는 과정을 포함하고,
    상기 성향을 결정하는 과정은,
    다수의 패킷들 각각의 이전 패킷 대비 버퍼링 지연의 증가 여부에 기초하여 상기 성향을 결정하는 과정과,
    이전 패킷 대비 상기 버퍼링 지연이 증가한 패킷의 비율이 임계값 보다 클 경우 상기 버퍼링 지연의 증가에 대응한다고 판단하는 과정을 포함하는 방법.
  2. 제 1항에 있어서,
    상기 서버가 상기 단말로부터 응답 신호를 수신한 시간과 상기 단말이 상기 서버로부터 패킷을 수신한 시간의 차이를 이용하여 상기 패킷 전송 지연을 결정하는 과정을 더 포함하는 방법.
  3. 제 1항에 있어서,
    상기 단말과 상기 서버와의 패킷 왕복 시간을 상기 패킷 전송 지연으로 결정하는 과정을 더 포함하고,
    상기 패킷 왕복 시간은, 상기 서버가 상기 단말로 패킷을 전송한 시간과, 상기 단말로부터 상기 패킷에 대한 응답 신호를 수신한 시간의 차이에 기초하여 결정되는 방법.
  4. 제 1항에 있어서,
    상기 패킷 전송 지연은, 상기 단말의 버퍼링 지연과 상기 단말의 상향링크 지연 전송 시간의 합산이고,
    상기 버퍼링 지연은, 상기 패킷 전송 지연과 상기 패킷 전송 지연의 최소값의 차이를 이용하여 결정되는 것인 방법.
  5. 삭제
  6. 제 1항에 있어서,
    상기 성향을 결정하는 과정은,
    다수의 패킷들 각각의 이전 패킷 대비 버퍼링 지연의 차이 값들, 첫 번째 패킷 및 마지막 패킷의 버퍼링 지연 차이 값에 기초하여 상기 성향을 결정하는 과정과,
    수신한 패킷들 중 마지막으로 수신한 패킷의 버퍼링 지연과 가장 처음으로 수신한 패킷의 버퍼링 지연의 차이 값을, 각 패킷의 버퍼링 지연을 이전 패킷의 버퍼링 지연과 비교한 값들의 합으로 나눈 값이 임계값 보다 클 경우 상기 버퍼링 지연의 증가에 대응한다고 판단하는 과정을 포함하는 방법.
  7. 제 1항에 있어서,
    상기 제어 정보를 결정하는 과정은,
    패킷의 수신 속도를 측정하는 과정을 포함하고,
    상기 패킷의 수신 속도는, 하나의 주기 동안 수신된 패킷과 최대 세그먼트 크기를 비트 값으로 표현한 값의 곱을 주기로 나누는 과정을 포함하는 방법.
  8. 제1항에 있어서,
    상기 제어 정보를 결정하는 과정은,
    버퍼링 지연이 임계값 보다 크고, 결정된 상기 버퍼링 지연의 성향이 상기 단말로부터 수신된 다수의 패킷들에 대한 버퍼링 지연 증가(increasing)하는 성향이거나 또는 제 상기 버퍼링 지연이 증가 또는 비증가(non-increasing)성향이 아닌 경우 패킷 수신 속도와 최소 왕복 시간의 곱을 이용하여 제어 정보를 결정하는 과정을 포함하는 방법.
  9. 제1항에 있어서,
    상기 제어 정보를 결정하는 과정은,
    버퍼링 지연이 임계값 보다 크고, 결정된 상기 버퍼링 지연의 성향이 비증가(non-increasing) 타입인 경우, 또는 버퍼링 지연이 임계값 보다 크지 않고, 결정된 상기 버퍼링 지연의 성향이 버퍼링 지연 증가(increasing)하는 성향인 경우 현재의 제어 정보를 유지하는 방법.
  10. 제1항에 있어서,
    상기 제어 정보를 결정하는 과정은,
    버퍼링 지연이 임계값 보다 크지 않고, 결정된 상기 버퍼링 지연의 성향이 증가하는 성향이 아닌 경우, 상기 제어 정보를 소정 값만큼 증가시키는 과정을 더 포함하는 방법.
  11. 제1항에 있어서,
    상기 제어 정보를 결정하는 과정은,
    결정된 상기 버퍼링 지연의 성향이 증가 또는 비증가 성향에 해당하지 않는 성향인 경우 확률 변수를 이용하여 제어 정보를 결정하는 과정을 포함하는 방법.
  12. 전자 장치의 동작 방법에 있어서,
    서버로부터 제어 정보를 수신하는 과정과,
    상기 제어 정보에 기초하여 상향링크 패킷을 송신하는 과정을 포함하고,
    상기 제어 정보는, 상기 서버가 상기 전자 장치에 대한 패킷 전송 지연에 기초하여 버퍼링 지연에 대한 성향을 결정하고, 상기 성향에 따라 상기 전자 장치의 전송률을 제어하기 위해 생성되고,
    상기 성향은, 다수의 패킷들 각각의 이전 패킷 대비 버퍼링 지연의 증가 여부에 기초하여 결정되고, 이전 패킷 대비 상기 버퍼링 지연이 증가한 패킷의 비율이 임계값 보다 클 경우 상기 버퍼링 지연의 증가에 대응한다고 판단되는 것인 방법.
  13. 제12항에 있어서,
    상기 패킷 전송 지연은, 단말의 버퍼링 지연과 상기 단말의 상향링크 지연 전송 시간의 합산이고,
    상기 버퍼링 지연은, 상기 패킷 전송 지연과 상기 패킷 전송 지연의 최소값의 차이를 이용하여 결정되는 것인 방법.
  14. 삭제
  15. 제12항에 있어서,
    상기 성향은, 다수의 패킷들 각각의 이전 패킷 대비 버퍼링 지연의 차이 값들, 첫 번째 패킷 및 마지막 패킷의 버퍼링 지연 차이 값에 기초하여 결정되고, 상기 서버가 수신한 패킷들 중 마지막으로 수신한 패킷의 버퍼링 지연과 가장 처음으로 수신한 패킷의 버퍼링 지연의 차이 값을, 각 패킷의 버퍼링 지연을 이전 패킷의 버퍼링 지연과 비교한 값들의 합으로 나눈 값이 임계값 보다 클 경우 상기 버퍼링 지연의 증가에 대응한다고 판단되는 것인 방법.
  16. 통신 시스템에서 서버의 장치에 있어서,
    상기 장치는 적어도 하나의 제어부를 포함하고,
    상기 적어도 하나의 제어부는,
    단말로부터의 패킷 전송 지연을 결정하고, 상기 패킷 전송 지연을 이용하여 버퍼링 지연의 성향을 결정하고,
    결정된 상기 버퍼링 지연의 성향에 따라 전송률 제어를 위한 제어 정보 값을 제어하고,
    다수의 패킷들 각각의 이전 패킷 대비 버퍼링 지연의 증가 여부에 기초하여 상기 성향을 결정하고, 이전 패킷 대비 상기 버퍼링 지연이 증가한 패킷의 비율이 임계값 보다 클 경우 상기 버퍼링 지연의 증가에 대응한다고 판단하도록 구성되는 장치.
  17. 제 16항에 있어서,
    상기 적어도 하나의 제어부는,
    상기 서버가 상기 단말로부터 응답 신호를 수신한 시간과 상기 단말이 상기 서버로부터 패킷을 수신한 시간의 차이를 이용하여 상기 패킷 전송 지연을 결정하도록 더 구성되는 장치.
  18. 제 16항에 있어서,
    상기 적어도 하나의 제어부는,
    상기 단말과 상기 서버와의 패킷 왕복 시간을 상기 패킷 전송 지연으로 결정하도록 더 구성되고, 상기 패킷 왕복 시간은, 상기 서버가 상기 단말로 패킷을 전송한 시간과, 상기 단말로부터 상기 패킷에 대한 응답 신호를 수신한 시간의 차이에 기초하여 결정되는 장치.
  19. 제 16항에 있어서,
    상기 패킷 전송 지연은, 상기 단말의 버퍼링 지연과 상기 단말의 상향링크 지연 전송 시간의 합산이고,
    상기 버퍼링 지연은, 상기 패킷 전송 지연과 상기 패킷 전송 지연의 최소값의 차이를 이용하여 결정되는 장치.
  20. 삭제
  21. 제16항에 있어서,
    상기 적어도 하나의 제어부는,
    다수의 패킷들 각각의 이전 패킷 대비 버퍼링 지연의 차이 값들, 첫 번째 패킷 및 마지막 패킷의 버퍼링 지연 차이 값에 기초하여 상기 성향을 결정하고, 수신한 패킷들 중 마지막으로 수신한 패킷의 버퍼링 지연과 가장 처음으로 수신한 패킷의 버퍼링 지연의 차이 값을, 각 패킷의 버퍼링 지연을 이전 패킷의 버퍼링 지연과 비교한 값들의 합으로 나눈 값이 임계값 보다 클 경우 상기 버퍼링 지연의 증가에 대응한다고 판단하도록 더 구성되는 장치.
  22. 제 16항에 있어서,
    상기 적어도 하나의 제어부는, 패킷의 수신 속도를 측정하도록 더 구성되고,
    상기 패킷의 수신 속도는, 하나의 주기 동안 수신된 패킷과 최대 세그먼트 크기를 비트 값으로 표현한 값의 곱을 주기로 나누어서 구해지는 장치.
  23. 제 16항에 있어서,
    상기 적어도 하나의 제어부는, 버퍼링 지연이 임계값 보다 크고, 결정된 상기 버퍼링 지연의 성향이 상기 단말로부터 수신된 다수의 패킷들에 대한 버퍼링 지연 증가(increasing)하는 성향이거나 또는 제 상기 버퍼링 지연이 증가 또는 비증가(non-increasing)성향이 아닌 경우 패킷 수신 속도와 최소 왕복 시간의 곱을 이용하여 제어 정보를 결정하도록 더 구성되는 장치.
  24. 제16항에 있어서,
    상기 적어도 하나의 제어부는, 버퍼링 지연이 임계값 보다 크고, 결정된 상기 버퍼링 지연의 성향이 비증가(non-increasing) 타입인 경우, 또는 버퍼링 지연이 임계값 보다 크지 않고, 결정된 상기 버퍼링 지연의 성향이 버퍼링 지연 증가(increasing)하는 성향인 경우 현재의 제어 정보를 유지하도록 더 구성되는 장치.
  25. 제16항에 있어서,
    상기 적어도 하나의 제어부는, 상기 제어 정보를 결정하기 위해, 버퍼링 지연이 임계값 보다 크지 않고, 결정된 상기 버퍼링 지연의 성향이 증가하는 성향이 아닌 경우, 상기 제어 정보를 소정 값만큼 증가시키도록 더 구성되는 장치.
  26. 제16항에 있어서,
    상기 적어도 하나의 제어부는, 결정된 상기 버퍼링 지연의 성향이 증가 또는 비증가 성향에 해당하지 않는 성향인 경우 확률 변수를 이용하여 제어 정보를 결정하도록 더 구성되는 장치.
  27. 전자 장치에 있어서,
    서버로부터 제어 정보를 수신하는 수신부와,
    상기 제어 정보에 기초하여 상향링크 패킷을 송신하는 송신부를 포함하고,
    상기 제어 정보는, 상기 서버가 상기 전자 장치에 대한 패킷 전송 지연에 기초하여 버퍼링 지연에 대한 성향을 결정하고, 상기 성향에 따라 상기 전자 장치의 전송률을 제어하기 위해 생성되고,
    상기 성향은, 다수의 패킷들 각각의 이전 패킷 대비 버퍼링 지연의 증가 여부에 기초하여 결정되고, 이전 패킷 대비 상기 버퍼링 지연이 증가한 패킷의 비율이 임계값 보다 클 경우 상기 버퍼링 지연의 증가에 대응된다고 판단되는 것인 장치.
  28. 제27항에 있어서,
    상기 패킷 전송 지연은, 단말의 버퍼링 지연과 상기 단말의 상향링크 지연 전송 시간의 합산이고,
    상기 버퍼링 지연은, 상기 패킷 전송 지연과 상기 패킷 전송 지연의 최소값의 차이를 이용하여 결정되는 것인 장치.
  29. 삭제
  30. 제 27항에 있어서,
    상기 성향은, 다수의 패킷들 각각의 이전 패킷 대비 버퍼링 지연의 차이 값들, 첫 번째 패킷 및 마지막 패킷의 버퍼링 지연 차이 값에 기초하여 결정되고, 상기 서버가 수신한 패킷들 중 마지막으로 수신한 패킷의 버퍼링 지연과 가장 처음으로 수신한 패킷의 버퍼링 지연의 차이 값을, 각 패킷의 버퍼링 지연을 이전 패킷의 버퍼링 지연과 비교한 값들의 합으로 나눈 값이 임계값 보다 클 경우 상기 버퍼링 지연의 증가에 대응한다고 판단되는 것인 장치.
KR1020150059018A 2015-04-27 2015-04-27 통신 시스템에서 하향링크 전송률 제어를 위한 장치 및 방법 KR102350504B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020150059018A KR102350504B1 (ko) 2015-04-27 2015-04-27 통신 시스템에서 하향링크 전송률 제어를 위한 장치 및 방법
US15/137,422 US10193779B2 (en) 2015-04-27 2016-04-25 Apparatus and method for controlling downlink throughput in communication system
CN201680024739.3A CN107624232B (zh) 2015-04-27 2016-04-25 在通信系统中控制下行链路吞吐量的设备和方法
EP16786707.6A EP3289802B1 (en) 2015-04-27 2016-04-25 Apparatus and method for controlling downlink throughput in communication system
PCT/KR2016/004294 WO2016175521A1 (en) 2015-04-27 2016-04-25 Apparatus and method for controlling downlink throughput in communication system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150059018A KR102350504B1 (ko) 2015-04-27 2015-04-27 통신 시스템에서 하향링크 전송률 제어를 위한 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20160127511A KR20160127511A (ko) 2016-11-04
KR102350504B1 true KR102350504B1 (ko) 2022-01-14

Family

ID=57148204

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150059018A KR102350504B1 (ko) 2015-04-27 2015-04-27 통신 시스템에서 하향링크 전송률 제어를 위한 장치 및 방법

Country Status (5)

Country Link
US (1) US10193779B2 (ko)
EP (1) EP3289802B1 (ko)
KR (1) KR102350504B1 (ko)
CN (1) CN107624232B (ko)
WO (1) WO2016175521A1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102350504B1 (ko) * 2015-04-27 2022-01-14 삼성전자주식회사 통신 시스템에서 하향링크 전송률 제어를 위한 장치 및 방법
US10298510B1 (en) * 2015-12-16 2019-05-21 Amazon Technologies, Inc. Controlling data transmission rates of multiple devices
KR102532645B1 (ko) * 2016-09-20 2023-05-15 삼성전자 주식회사 적응적 스트리밍 서비스에서 스트리밍 어플리케이케이션으로 데이터를 제공하는 방법 및 장치
WO2018156206A1 (en) 2017-02-24 2018-08-30 Trackio Gmbh Privacy preserving message blinding
US10873520B2 (en) 2018-07-02 2020-12-22 Hewlett Packard Enterprise Development Lp Packet batching identification
KR102139378B1 (ko) * 2018-11-20 2020-07-29 울산과학기술원 혼잡 제어 방법 및 장치
CN112583735A (zh) * 2019-09-27 2021-03-30 华为技术有限公司 确定传输数据流的需求带宽的方法、设备和系统
US11683294B2 (en) * 2019-12-30 2023-06-20 Imperva, Inc. Privacy-preserving learning of web traffic
US11876790B2 (en) * 2020-01-21 2024-01-16 The Boeing Company Authenticating computing devices based on a dynamic port punching sequence
TWI791977B (zh) * 2020-04-24 2023-02-11 和碩聯合科技股份有限公司 伺服系統、資料傳輸系統及其資料傳輸之方法
CN112492265B (zh) * 2020-10-30 2023-05-02 广东电网有限责任公司电力调度控制中心 一种应用于智能电网的上下行资源联合分配方法
US11765093B2 (en) * 2022-02-15 2023-09-19 Mellanox Technologies, Ltd. Statistical flow aging

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030219037A1 (en) 2002-05-24 2003-11-27 Nokia Corporation Method and apparatus for distributed signaling for uplink rate control
US20060268708A1 (en) * 2003-06-27 2006-11-30 Ipwireless, Inc. Method and arrangement for tcp flow control
US20150063104A1 (en) 2012-03-16 2015-03-05 Jing Zhu User equipment and method for reducing delay in a radio access network

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6360271B1 (en) * 1999-02-02 2002-03-19 3Com Corporation System for dynamic jitter buffer management based on synchronized clocks
KR100322015B1 (ko) * 1998-12-23 2002-03-08 윤종용 근거리 통신망에서 프레임 구조 가변방법
FI118830B (fi) * 2001-02-08 2008-03-31 Nokia Corp Tietovirran toisto
KR20060027415A (ko) * 2003-06-25 2006-03-27 인터디지탈 테크날러지 코포레이션 다운링크 전송 동기화 방법
US20060133281A1 (en) * 2004-12-20 2006-06-22 Motorola, Inc. System for managing round trip time of a transmission control protocol and supporting method and apparatus
GB2452013A (en) * 2007-06-19 2009-02-25 Nec Corp Buffer status reporting from a mobile communications device
ATE505053T1 (de) * 2007-06-25 2011-04-15 Alcatel Lucent Aufwärtsübertragung in mobilen netzen
US7742418B2 (en) * 2007-08-24 2010-06-22 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for determining latency and throughput of a data communication
KR101454504B1 (ko) * 2008-01-04 2014-11-04 인터디지탈 패튼 홀딩스, 인크 이볼브드 무선 시스템에서의 회선 교환 음성 애플리케이션의 데이터 레이트를 제어하는 방법
US8837279B2 (en) 2008-06-06 2014-09-16 Optis Wireless Technology, Llc Technique for improving congestion control
US20100054123A1 (en) * 2008-08-30 2010-03-04 Liu Yong Method and device for hign utilization and efficient flow control over networks with long transmission latency
CN102255791B (zh) * 2010-05-21 2013-12-18 中国移动通信集团公司 确定设备间链路延迟量的方法及系统
CN104025553B (zh) 2011-07-14 2018-04-10 瑞典爱立信有限公司 移动云加速器中的优化引擎及相关方法
US9386128B2 (en) * 2012-03-23 2016-07-05 Qualcomm Incorporated Delay based active queue management for uplink traffic in user equipment
JP6127476B2 (ja) * 2012-11-30 2017-05-17 ヤマハ株式会社 ネットワーク音楽セッションにおける遅延測定方法及び装置
JP6171595B2 (ja) * 2013-06-07 2017-08-02 富士通株式会社 パケット中継装置及びパケット送信装置
US9407563B2 (en) 2013-08-12 2016-08-02 Qualcomm Incorporated Methods and apparatuses for adapting application uplink rate to wireless communications network
JP6303452B2 (ja) * 2013-12-02 2018-04-04 富士通株式会社 通信ノード
KR102350504B1 (ko) * 2015-04-27 2022-01-14 삼성전자주식회사 통신 시스템에서 하향링크 전송률 제어를 위한 장치 및 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030219037A1 (en) 2002-05-24 2003-11-27 Nokia Corporation Method and apparatus for distributed signaling for uplink rate control
US20060268708A1 (en) * 2003-06-27 2006-11-30 Ipwireless, Inc. Method and arrangement for tcp flow control
US20150063104A1 (en) 2012-03-16 2015-03-05 Jing Zhu User equipment and method for reducing delay in a radio access network

Also Published As

Publication number Publication date
US10193779B2 (en) 2019-01-29
CN107624232A (zh) 2018-01-23
KR20160127511A (ko) 2016-11-04
WO2016175521A1 (en) 2016-11-03
EP3289802A1 (en) 2018-03-07
EP3289802B1 (en) 2020-08-19
US20160315841A1 (en) 2016-10-27
CN107624232B (zh) 2022-02-22
EP3289802A4 (en) 2018-04-11

Similar Documents

Publication Publication Date Title
KR102350504B1 (ko) 통신 시스템에서 하향링크 전송률 제어를 위한 장치 및 방법
Zhang et al. Novel quick start (QS) method for optimization of TCP
US9596281B2 (en) Transport accelerator implementing request manager and connection manager functionality
US10911359B2 (en) Transmit data volume control device, method, and recording medium
CN106301684B (zh) 一种媒体数据传输方法及装置
US9510354B2 (en) Method and a device for low intrusive fast estimation of the bandwidth available between two IP nodes
JP6274113B2 (ja) データ送信装置、データ送信方法、及びそのプログラム
US20150124604A1 (en) Systems and Methods for Proactive Congestion Detection in Radio Access Networks
US20130201832A1 (en) Method and apparatus for controlling traffic transfer rate based on cell capacity in mobile communication system
US20080291833A1 (en) Method for buffer control for network device
US20200382991A1 (en) Method and an electronic device for dynamically controlling tcp congestion window
US10952102B2 (en) Method and apparatus for controlling data transmission speed in wireless communication system
US11115308B2 (en) System and method for congestion control using time difference congestion notification
US10298475B2 (en) System and method for jitter-aware bandwidth estimation
Tang et al. TCP-WBQ: a backlog-queue-based congestion control mechanism for heterogeneous wireless networks
WO2014171543A1 (ja) データ送信装置、データ送信方法、及びそのプログラム
KR20150072512A (ko) 단방향 지연을 제어하는 프레임 전송 방법 및 장치
CN104580006B (zh) 一种移动网络发送速率控制方法、装置及系统
JP6418169B2 (ja) 遅延最小値算出装置、情報送信装置、遅延最小値算出方法およびコンピュータプログラム
Chen et al. Congestion-aware mac layer adaptation to improve video teleconferencing over wi-fi
Liu et al. Achieving high throughput and low delay in mobile data networks by accurately predicting queue lengths
Osuga et al. A method for correcting minimum RTT of TCP congestion control in mobile networks
Chen et al. An end-to-end flow control approach based on round trip time
Tsiknas et al. TCP-BIAD for enhancing TCP performance in broadband wireless access networks
JPWO2019004013A1 (ja) データ送信装置、方法およびプログラム

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