KR20130074828A - 프록시 서버에 의한 데이터 흐름 제어 방법 및 장치 - Google Patents

프록시 서버에 의한 데이터 흐름 제어 방법 및 장치 Download PDF

Info

Publication number
KR20130074828A
KR20130074828A KR20110141389A KR20110141389A KR20130074828A KR 20130074828 A KR20130074828 A KR 20130074828A KR 20110141389 A KR20110141389 A KR 20110141389A KR 20110141389 A KR20110141389 A KR 20110141389A KR 20130074828 A KR20130074828 A KR 20130074828A
Authority
KR
South Korea
Prior art keywords
data
amount
content server
user terminal
ack
Prior art date
Application number
KR20110141389A
Other languages
English (en)
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 KR20110141389A priority Critical patent/KR20130074828A/ko
Priority to PCT/KR2012/011072 priority patent/WO2013094964A1/ko
Priority to US14/368,241 priority patent/US9553814B2/en
Publication of KR20130074828A publication Critical patent/KR20130074828A/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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • 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/40Flow control; Congestion control using split connections
    • 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
    • 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/18Service support devices; Network management devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

사용자 단말과 컨텐츠 서버 간에 접속되는 프록시 서버에 의한 데이터 흐름 제어 방법 및 장치를 개시한다. 프록시 서버는 상기 사용자 단말로 수신된 데이터 양을 나타내는 제1 데이터 수신양을 추정하고, 상기 컨텐츠 서버로부터 상기 프록시 서버로 수신된 데이터 양을 나타내는 제2 데이터 수신양을 계산한다. 상기 제2 데이터 수신양이 상기 제1 데이터 수신양보다 미리 정해지는 임계값만큼 더 많은 경우, 프록시 서버는 상기 컨텐츠 서버로부터 수신한 데이터에 대한 애크의 전송을 지연시키고 전송이 허용되는 시점에 도달할 때까지 대기한다. 이러한 본 발명은 프록시 서버에서 컨텐츠 서버로부터의 다운로드 데이터 속도를 조절하여 네트워크의 부하와 불필요한 자원의 낭비를 막을 수 있다.

Description

프록시 서버에 의한 데이터 흐름 제어 방법 및 장치{METHOD AND APPARATUS FOR CONTROL DATA FLOW IN PROXY SERVER}
본 발명은 통신 시스템에서 데이터의 흐름 제어에 관한 것으로서, 특히, 통신 시스템에서 프록시 서버에 의해 데이터 흐름을 제어하는 방법 및 장치에 관한 것이다.
통신 시스템에서 프록시 서버는 컨텐츠 서버로부터 데이터를 다운로드 하여 무선 액세스 네트워크를 통해 사용자 단말(User Equipment: UE)에게로 전달하는 캐쉬로서 동작한다.
일 예로 사용자 단말은 무선 기지국(Wireless Access Point: WAP)에 무선으로 접속하여, 네트워크 상의 컨텐츠 서버로부터 비디오 파일과 같은 데이터를 다운로드한다. 이때 프록시 서버는 컨텐츠 서버와 무선 기지국 사이에서 매개로서 동작하여, 사용자 단말에 의해 요구된 데이터를 컨텐츠 서버로부터 다운로드 받는 동시에 상기 데이터를 사용자 단말로 전송해 준다.
사용자 단말은 데이터의 다운로드 속도를 적절한 속도로 조절하는 JIT(Just-in-time delivery) 기능을 가질 수 있다. JIT 기능은 일 예로 주문형 비디오(Video on Demand: VOD)와 같은 비디오 파일을, 사용자가 플레이하는 시점보다 너무 많이 다운로드하지 않도록 조절하는 기능을 의미하며, 이는 전송 대역폭을 적절한 수준으로 조절함과 함께, 사용자가 중간에 비디오를 그만 보는 경우에 불필요하게 다운로드 하는 데이터의 양을 줄이기 위한 것이다. 즉 JIT 기능은 사용자가 비디오 파일을 플레이하면서 끝까지 보지 않고 중간에 종료하는 경우에 자원의 낭비를 예방할 수 있다는 점에서 매우 유용하다.
프록시 서버가 사용자 단말과 컨텐츠 서버 사이의 매개로 동작하는 경우, 마찬가지로 프록시 서버에서도 사용자 단말이 다운로드 하는 것 이상으로 불필요하게 데이터를 빠르게 다운로드 할 필요가 없는 경우가 있다. 따라서 프록시 서버에서 사용자 단말의 다운로드 속도를 고려하여 적절한 속도로 데이터를 다운로드하도록 조절할 수 있는 기술을 필요로 하게 되었다.
본 발명은 사용자 단말의 데이터 수신 속도에 따라 프록시 서버가 컨텐츠 서버로부터 데이터의 수신 속도를 조절하기 위한 방법 및 장치를 제공한다.
본 발명은 사용자 단말이 수신하는 데이터의 양보다 프록시 서버에 수신되는 데이터의 양이 약간만 더 많도록 조절하기 위한 방법 및 장치를 제공한다.
본 발명은 프록시 서버에서 컨텐츠 서버의 데이터를 수신할 때, 사용자 단말이 받은 데이터의 양을 바탕으로 데이터 수신 속도를 조절하는 방법 및 장치를 제공한다.
본 발명의 바람직한 실시예에 따른 방법은; 사용자 단말과 컨텐츠 서버 간에 접속되는 프록시 서버에 의한 데이터 흐름 제어 방법에 있어서, 상기 프록시 서버로부터 상기 사용자 단말로 수신된 데이터 양을 나타내는 제1 데이터 수신양을 추정하는 과정과, 상기 컨텐츠 서버로부터 상기 프록시 서버로 수신된 데이터 양을 나타내는 제2 데이터 수신양을 계산하는 과정과, 상기 제2 데이터 수신양이 상기 제1 데이터 수신양보다 미리 정해지는 임계값만큼 더 많은 경우, 상기 컨텐츠 서버로부터 수신한 데이터에 대한 애크의 전송을 지연시키는 과정을 포함한다.
사용자 단말과 컨텐츠 서버 간에 접속되는 프록시 서버 내의 데이터 흐름 제어 장치에 있어서, 상기 사용자 단말과의 데이터 송수신을 담당하는 제1 송수신부와, 상기 컨텐츠 서버와의 데이터 송수신을 담당하는 제2 송수신부와, 상기 제1 송수신부를 통해 상기 사용자 단말로 수신된 데이터 양을 나타내는 제1 데이터 수신양을 추정하고, 상기 제2 송수신부를 통해 상기 컨텐츠 서버로부터 수신된 데이터 양을 나타내는 제2 데이터 수신양을 계산하고, 상기 제2 데이터 수신양이 상기 제1 데이터 수신양보다 미리 정해지는 임계값만큼 더 많은 경우, 상기 컨텐츠 서버로부터 수신한 데이터에 대한 애크의 전송을 지연시키는 제어부를 포함한다.
본 발명의 개시된 실시예에 따르면, 프록시 서버는 컨텐츠 서버로부터 다운로드 하는 데이터의 양을 조절할 수 있으며, 이를 통해서 프록시 서버에서 JIT 기능을 구현할 수 있다. 또한 프록시 서버의 JIT 기능은 사용자 단말의 JIT 기능을 방해하지 않는 한도 내에서 이루어지면서 프록시 서버로의 다운로드 양을 최소화할 수 있으므로, 네트워크의 부하와 불필요한 자원의 낭비를 막을 수 있다는 장점을 가진다.
도 1은 본 발명의 일 실시예에 따른 네트워크 구성을 나타낸 도면.
도 2는 본 발명의 일 실시예에 따른 네트워크 요소들 간의 관계와 레이어 구조를 나타낸 도면.
도 3은 본 발명의 일 실시예에 따른 프록시 서버의 동작을 나타낸 흐름도.
도 4는 본 발명의 일 실시예에 따른 사용자 단말의 데이터 수신양 추정 동작을 나타낸 흐름도.
도 5는 본 발명의 일 실시예에 따른 애크의 전송 결정 동작을 나타낸 흐름도.
도 6은 본 발명의 일 실시예에 따른 저장된 애크의 전송 결정 동작을 나타낸 흐름도.
도 7은 본 발명의 일 실시예에 따른 프록시 서버의 내부 구성을 나타낸 블록도.
이하 본 발명의 바람직한 실시 예를 첨부된 도면을 참조하여 상세히 설명한다. 그리고, 본 발명을 설명함에 있어서, 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단된 경우 그 상세한 설명은 생략한다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
본 발명의 실시예에 따른 프록시 서버에서는 사용자 단말이 다운로드 하는 양보다 약간만 더 많은 양의 데이터를 다운로드하도록, 컨텐츠 서버로부터의 데이터 흐름을 제어한다. 이를 위하여 프로시 서버는 컨텐츠 서버로부터 다운로드한 데이터에 대한 애크(Acknowledgement: ACK)의 전송을 지연시키는 방식을 사용한다. 이러한 본 발명은, 사용자 단말이 주문형 비디오(VOD)의 실행을 위한 JIT 기능을 구비하는 경우에 유용하게 적용될 수 있다.
도 1은 본 발명의 일 실시예에 따른 네트워크 구성을 나타낸 것이다.
도 1을 참조하면, 사용자 단말(UE)(102)은 휴대폰, 스마트폰, 통신 모듈을 가지는 노트북 등의 휴대 기기로서, 무선 액세스 네트워크를 통해 무선 기지국(Wireless Access Point: WAP)(104)에 접속하여, 네트워크 상의 컨텐츠 서버(108)로부터 데이터를 다운로드할 수 있는 기능을 가진다. 프록시 서버(106)는 컨텐츠 서버(108)와 무선 기지국(104) 사이에서 매개로서 동작하여, 사용자 단말(102)에 의해 요구된 데이터를 컨텐츠 서버(108)로부터 다운로드 받는 동시에 상기 데이터를 사용자 단말(102)로 전송해 준다.
도 2는 본 발명의 일 실시예에 따른 네트워크 요소들 간의 관계와 레이어 구조를 나타낸 것이다.
도 2를 참조하면, 사용자 단말(102)은 비디오 플레이어와 같은 어플리케이션과, 인터넷 프로토콜(Internet Protocol: IP) 상에서 동작하며 데이터 흐름을 제어하는 전송 제어 프로토콜(Transfer Control Protocol: TCP) 계층(202)과 무선 프로토콜 계층을 구비한다. 무선 기지국(104)은 사용자 단말(102)을 프록시 서버(106)으로 연결시키기 위한 무선 프로토콜 계층을 포함한다. 프록시 서버(106)은 어플리케이션과, 사용자 단말(102)의 TCP 계층(202)과 연동하는 TCP 계층(206) 및 하위 L2/L1 계층을 구비한다. 컨텐츠 서버(108)은 어플리케이션과, 프록시 서버(106)의 TCP 계층(206)과 연동하는 TCP 계층(208) 및 하위 L2/L1 계층을 구비한다.
도시한 바와 같이 프록시 서버(106)는 컨텐츠 서버(108)과의 사이에 설정된 TCP 연결을 통해 사용자가 원하는 데이터(일 예로서 비디오 파일)를 분할 수납한 패킷들(즉 TCP 세그먼트들)을 수신하며, 사용자 단말(102)과의 사이에 설정된 TCP 연결을 통해 패킷들을 사용자 단말(102)에게로 전달한다. 프록시 서버(106)는 사용자 단말(102)로 전달된 데이터의 양과 프록시 서버(106)에서의 애크 전송을 이용하여 프록시 서버(106)와 컨텐츠 서버(108)간의 TCP 트래픽을 조절할 수 있다. 즉 사용자 단말(102)이 수신하는 데이터 양을 기준으로, 프록시 서버(106)에서 컨텐츠 서버(108)로 향하는 애크의 전송을 지연시킴으로써, 프록시 서버(106)가 수신하는 데이터 양을 보다 세밀하게 조절할 수 있다.
TCP 프로토콜에서 TCP 접속이 설정될 때, 각 측은 임의의 번호(random number)를 자신의 최초 시퀀스 번호로 설정하고, 매 패킷에 송신될 때마다 시퀀스 번호를 상기 최초 시퀀스 번호로부터 시작하여 송신한 바이트 수만큼 증가시킨다. 수신기는 수신하기를 기대하는 다음 데이터의 시퀀스 번호(sequence number)를 지시하는 애크 번호(Acknowledgement Number)를 송신기로 전송한다. 송신기는 상기 애크 번호를 통해 수신기가 수신한 데이터의 양을 알 수 있다. 상기 애크 번호는 TCP 세그먼트 내의 TCP 헤더에 포함되어 전송되며, 상기 애크 번호를 포함하는 TCP 세그먼트를 본 명세서에서는 TCP 애크라 칭하기로 한다.
프록시 서버(106)는 컨텐츠 서버(108)로부터 데이터를 수신하면서 자신이 수신한 데이터 양을 TCP 애크를 통해 컨텐츠 서버(108)에게 알려주며, 또한 컨텐츠 서버(108)로부터 수신한 데이터를 사용자 단말(102)에 전송하고 사용자 단말(102)이 수신한 데이터 양을 TCP 애크를 통해 사용자 단말(102)로부터 수신한다.
프록시 서버(106)가 데이터를 수신하는 만큼 TCP 애크를 전송하는 경우, 데이터는 컨텐츠 서버(108)에서 전송 가능한 최대 속도로 수신된다. 반면 프록시 서버(106)가 컨텐츠 서버(108)에 TCP 애크를 천천히 보낸다면, 데이터의 전송속도가 줄어들게 된다. 이는 컨텐츠 서버(108)는 TCP 애크가 오기까지 TCP 프로토콜에서 정하는 윈도우 크기(window size)를 초과하여 데이터를 전송하지 못하기 때문이다.
즉 프록시 서버(106)가 데이터를 받는 즉시 TCP 애크를 보내지 않고 지연시킴으로써 컨텐츠 서버(108)로부터의 다운로드 속도를 늦출 수 있다. 이로써 프록시 서버(106)가 불필요하게 데이터를 다운로드하는 문제를 방지할 수 있다.
프록시 서버(106)는 사용자 단말(102)로부터 수신되는 TCP 애크의 애크 번호에 근거하여 사용자 단말(102)이 수신한 데이터 양을 추정하고, 사용자 단말(102)이 수신한 데이터 양에 해당하는 TCP 애크만을 컨텐츠 서버(108)로 전송한다. 즉 실제로 컨텐츠 서버(108)로부터 수신된 데이터 양 대신, 사용자 단말(102)이 수신한 데이터 양에 근거하여 TCP 애크가 컨텐츠 서버(108)로 전송된다.
도 3은 본 발명의 일 실시예에 따른 프록시 서버의 동작을 나타낸 흐름도이다.
도 3을 참조하면, 과정 302에서 프록시 서버는 사용자 단말이 프록시 서버를 통해 다운로드한 데이터의 크기, 즉 데이터 수신양을 추정한다. 상기 사용자 단말의 데이터 수신양은 사용자 단말이 전송한 애크에 포함된 애크 번호를 이용하여 추정될 수 있다. 과정 304에서 프록시 서버는 컨텐츠 서버로 전송할 애크를 전송할지 혹은 지연시킬지를 판단한다. 상기 판단은 상기 추정된 데이터 수신양과 미리 정해지는 임계값에 근거하여 수행된다.
만일 애크를 전송할 것으로 결정된 경우, 과정 306에서 컨텐츠 서버로부터 프록시 서버로 현재까지 수신된 데이터에 대한 애크가 컨텐츠 서버로 전송된다. 반면 애크를 지연시킬 것으로 결정된 경우, 과정 308에서 현재까지 실제로 수신된 데이터에 대한 애크는, 애크의 전송이 허용될 때까지 프록시 서버 내의 큐에 저장된다. 애크 전송이 허용은 사용자 단말의 데이터 수신양과 프록시 서버의 데이터 수신양 및 애크가 큐에 저장된 시간(queued time), 즉 애크의 지연 시간에 의해 결정된다.
도 4는 본 발명의 일 실시예에 따른 사용자 단말의 데이터 수신양 추정 동작을 나타낸 흐름도이다. 도시된 동작은 프록시 서버와 사용자 단말 사이의 TCP 접속에 대해서, 주기적으로 혹은 미리 정해지는 명령이나 이벤트에 의해 수행될 수 있다. 하기에서는 일 예로서 사용자 단말로부터 애크가 수신되는 경우에 트리거링되는 경우의 실시예를 설명한다.
도 4를 참조하면, 과정 402에서 프록시 서버는 사용자 단말로부터 애크를 수신하고, 과정 404에서 상기 애크에 포함된 애크 번호를 추출한다. 과정 406에서 프록시 서버는 상기 추출된 애크 번호(extract_ack_number)와 현재까지 수신된 최대의 애크 번호 중 큰 값으로 최대 애크 번호(Ack_Max)를 최종 결정한다.(Ack_Max = Max{Ack_Max, extracted_ack_number}) 이는 사용자 단말로부터 수신되는 애크가 애크 번호의 순서대로 수신되지 않고 순서가 바뀌어서 수신될 수 있기 때문이다.
과정 408에서 프록시 서버는 상기 최대 애크 번호와 TCP 접속이 설정될 때 정해진 최초 시퀀스 번호에 근거하여, 사용자 단말의 데이터 수신양을 추정한다. 구체적인 예로서 상기 사용자 단말의 데이터 수신양(Estimated_Received_bytes_by_UE)은, 상기 최대 애크 번호(Ack_Max)로부터 상기 최초 시퀀스 번호(Starting_TCP_seq)를 감산함으로써 계산된다.
Estimated_Received_bytes_by_UE = Ack_Max - Starting_TCP_seq
도 5는 본 발명의 일 실시예에 따른 TCP 애크의 전송 결정 동작을 나타낸 흐름도이다. 도시한 동작은 주기적으로 혹은 미리 정해지는 이벤트에 의해 트리거링될 수 있다. 하기에서는 일 예로서 사용자 단말의 데이터 수신양이 추정되었을 때 트리거링되는 경우의 실시예를 설명한다.
도 5를 참조하면, 과정 502에서 프록시 서버는 컨텐츠 서버로부터 수신된 데이터의 크기, 즉 프록시 서버의 데이터 수신양을 계산한다. 구체적인 예로서 상기 프록시 서버의 데이터 수신양(Received_byte_by_proxy)은, 컨텐츠 서버로부터 수신한 애크로부터 구해진 애크 번호(Ack_Num)로부터, 프록시 서버와 컨텐츠 서버 간의 TCP 접속에 대해 설정된 최초 시퀀스 번호(Starting_TCP_seq)를 감산함으로써 계산된다. 여기서 상기 애크 번호는 컨텐츠 서버로부터 수신된 최대 애크 번호가 될 수 있다.
Received_byte_by_proxy = Ack_Num- Starting_TCP_seq
과정 504에서 프록시 서버는 사용자 단말에 비한 데이터 초과양을 계산한다. 일 예로 상기 데이터 초과양(Excess_Byte)은, 프록시 서버가 컨텐츠 서버로부터 수신한 데이터 양(Received_bytes_by_Proxy)에서 사용자 단말의 데이터 수신양(Estimated_received_bytes_by_UE)를 감산함으로써 계산된다.
Excess_Byte = Received_bytes_by_Proxy - Estimated_received_bytes_by_UE
프록시 서버와 컨텐츠 서버 간의 불필요한 데이터 전송을 방지하기 위해서는 상기 데이터 초과양(Excess_bytes)가 과도하게 커지지 않도록 유지하여야 한다.
과정 506에서 상기 데이터 초과양은 미리 정해지는 임계값(threshold)과 비교된다. 상기 데이터 초과양이 상기 임계값보다 작으면 과정 508에서 프록시 서버는 현재까지 수신된 데이터에 대한 애크를 컨텐츠 서버에게 바로 전송한다. 상기 임계값은 일 예로서 컨텐츠 서버로부터 데이터 수신 속도와 사용자 단말로의 데이터 전송 속도와 프록시 서버의 캐슁 능력 및 다른 파라미터들 중 적어도 하나를 고려하여 결정될 수 있다.
반면 상기 데이터 초과양이 상기 임계값보다 작지 않으면, 과정 512에서 프록시 서버는 현재까지 수신된 데이터에 대한 애크를 큐에 저장한다. 선택적인 실시예로서, 과정 510에서 프록시 서버는 상기 데이터 초과양에서 상기 임계값을 감산함으로써 현재까지 수신된 데이터가 상기 임계값을 상회하는 양을 나타내는 오버 데이터양(over_threshold)를 계산하고,(over_threshold=Excess_bytes-Threshold) 과정 512에서 상기 오버 데이터양을 상기 애크와 함께 큐에 저장한다.
상기 데이터 초과양과 비교되는 임계값은, 시스템 설계자 혹은 운영자에 의해 고정적 혹은 가변적으로 정해질 수 있다. 일 예로 상기 임계값은 프록시 서버와 사용자 단말간 TCP 접속에서의 지터(jitter_for_proxy_UE_connection), 프록시 서버와 컨텐츠 서버간 TCP 접속에서의 지터(jitter_for_proxy_server_connection), 및 비디오 데이터 율(video_data_rate) 중 적어도 하나에 의해서 정해질 수 있다. 하기 <수학식 1>은 상기 임계값을 결정하는 일 예를 나타낸 것이다.
Figure pat00001
여기서 a, b, c는 미리 정해지는 가중치 계수들을 의미한다.
애크가 큐에 저장되는 이유는, 사용자 단말이 충분한 양의 데이터를 다운로드하지 못하였기 때문이다. 따라서 사용자 단말이 충분한 양의 데이터를 다운로드하게 되면, 큐에 저장된 애크가 컨텐츠 서버로 전송된다. 일 실시예로서 프록시 서버는 애크가 큐에 저장된 시간에서의 사용자 단말의 데이터 수신양과, 현재 시점에서의 사용자 단말의 데이터 수신양을 이용함으로써,
도 6은 본 발명의 일 실시예에 따른 저장된 TCP 애크의 전송 결정 동작을 나타낸 흐름도이다. 도시한 동작은 프록시 서버가 큐에 저장된 애크를 언제 보낼 것인지를 결정하는 것에 관련된 것으로서, 주기적으로 혹은 미리 정해지는 이벤트에 의해 트리거링될 수 있다. 일 예로서 도시한 동작은 사용자 단말로부터 애크가 수신되어, 사용자 단말의 데이터 수신양이 업데이트될 때 트리거링될 수 있다.
도 6을 참조하면, 과정 602에서 프록시 서버는 애크가 큐에 저장된 이후로 사용자 단말로부터 추가로 수신된 데이터의 양을 나타내는 업데이트된 데이터 수신양을 결정한다. 일 예로서 상기 업데이트된 데이터 수신양(Updated_UE_download)은 현재 시점에서의 사용자 단말의 데이터 수신양(Estimated_Received_bytes_by_UE@now)에서, 애크가 큐에 저장된 시점(queued_time)에서의 사용자 단말의 데이터 수신양(Estimated_Received_bytes_by_UE@queued_time)을 감산함으로써 계산된다.
Updated_UE_download = Estimated_Received_bytes_by_UE@now - Estimated_Received_bytes_by_UE@queued_time
과정 604에서 프록시 서버는 상기 업데이트된 데이터 수신양(Updated_UE_download)이, 애크가 큐에 저장된 시점에서의 오버 데이터양(over_threshold@queued_time)보다 큰지를 판단한다. 상기 오버 데이터양은, 과정 510에서 계산되어 큐에 저장된 값이다.
over_threshold@queued_time = Received_byte_by_Proxy@queued_time - Estimated_Received_bytes_by_UE@queued_time ?? Threshold
만일 상기 업데이트된 데이터 수신양이 더 크면, 과정 606에서 큐에 저장된 애크가 컨텐츠 서버에게로 전송된다. 반면 상기 업데이트된 데이터 수신양이 더 크지 않으면, 과정 608에서 프록시 서버는 상기 애크가 큐에 저장된 시간을 나타내는 지연 시간(now-queued_time)이, 미리 정해지는 지연 임계값보다 큰지를 판단한다. 만일 상기 지연 시간이 더 크면, 큐에 저장된 애크가 컨텐츠 서버에게로 전송된다. 이는 애크가 과도하게 지연되어, 컨텐츠 서버가 이미 전송된 데이터를 불필요하게 재전송하는 것을 방지하기 위함이다. 반면 상기 지연 시간이 더 크지 않으면, 애크는 계속하여 큐에 저장된 상태를 유지한다.
컨텐츠 서버는 프록시 서버로부터 애크가 수신되지 않으면, 프록시 서버로 데이터를 전송하지 못하고 기다리게 된다. 그러나 애크가 수신되지 않더라도 컨텐츠 서버는 타임아웃이 경과하면 데이터를 재전송할 수 있다. 따라서 상기 지연 임계값은 TCP 프로토콜에서 요구하는 재전송 타임아웃(Retransmission timeout)과 동일하게, 혹은 상기 재전송 타임아웃을 고려하여 정해질 수 있다.
이상과 같이 애크가 큐에 저장된 이후 사용자 단말이 추가로 다운로드 받은 데이터의 양(updated_UE_download)이, 애크가 큐에 저장된 시점에서의 오버 데이터 양(over_threshold)보다 커지면, 큐에 저장된 애크가 컨텐츠 서버로 전송될 수 있게 된다.
하기에서는 구체적인 예를 참조하여 본 발명의 실시예에 따른 동작을 설명한다.
사용자 단말이 프록시 서버를 통해 1000 바이트의 데이터를 다운로드 했고, 프록시 서버는 1500 바이트의 데이터를 컨텐츠 서버로부터 다운로드하였다. 임계값이 300 바이트라고 하면, 이는 프록시 서버가 1300 바이트까지만 다운로드를 받기를 원함을 의미한다 그런데 현재 프록시 서버는 1500 바이트가 다운로드되어 있으므로, 1500 바이트에 대한 애크는 컨텐츠 서버로 전송되지 않고 큐에 저장된다. 더불어 1300 바이트에 대한 오버 데이터양인 200 바이트가 상기 애크와 함께 큐에 저장된다.
이후 사용자 단말이 1250 바이트의 데이터를 수신하였음을 나타내는 애크가 프록시 서버로 도착하면, Estimated_received_bytes_by_UE@NOW 는 1250 바이트이고, Estimated_received_bytes_by_UE@queued_time 는 1000 바이트이므로 Updated_UE_download는 250 바이트이다. 상기 Updated_UE_download는 Over_threshold@queued_time인 200 바이트를 초과한다. 그러므로 프록시 서버는 큐에 저장된 애크를 저장하도록 허락된다.
반면, Updated_UE_download가 Over_threshold@queued_time를 초과하지 않더라도, 1500 바이트에 대한 애크가 큐에 저장된 시간이 지연 임계값을 초과하게 되면, 상기 애크는 컨텐츠 서버로 전송되도록 허락된다.
도 7은 본 발명의 일 실시예에 따른 프록시 서버의 구성을 나타낸 블록도이다. 여기에서는 프록시 서버의 구성 중 본 발명의 실시예와 관련된 구성요소들만을 도시하였다.
도 7을 참조하면, 프록시 서버는 사용자 단말과 인터페이스하는 제1 송수신부(704)와, 컨텐츠 서버와 인터페이스하는 제2 송수신부(706)와, 상기 제1 및 제2 송수신부(704,706) 간의 데이터 흐름 및 상기 제1 및 제2 송수신부(704,706)에서의 데이터 송수신 동작을 제어하는 제어부(702)와, 제어부(702)의 동작에 필요한 프로그램 코드와 파라미터들 및 캐쉬된 데이터를 저장하는 메모리(708)를 포함한다.
제어부(702)는 제1 송수신부(704)를 통해 사용자 단말로부터 수신되는 애크를 참조하여 사용자 단말의 데이터 수신양을 추정하고, 제2 송수신부(706)를 통해 컨텐츠 서버(706)로부터 수신되는 데이터를 감시하여 프록시 서버의 데이터 수신양을 계산하며, 상기 수신되는 데이터에 대한 애크를 생성한다. 제어부(702)는 앞서 설명한 실시예에 근거하여 상기 애크를 전송할지 여부를 결정하고, 상기 애크를 지연시킬 것으로 결정한 경우 상기 애크를 제어부(702) 내의 큐에 저장한다. 그렇지 않은 경우 상기 애크는 제2 송수신부(706)를 통해 컨텐츠 서버로 전송된다.
선택 가능한 실시예로서, 제어부(702)는 수신되는 데이터에 대한 애크를 바로 생성하지 않고, 애크를 전송할지의 여부를 먼저 판단할 수 있다. 상기 판단 결과 상기 애크를 지연시킬 것으로 결정한 경우, 제어부(702)는 애크의 전송이 허용되는 시점까지 애크를 생성하지 않고 대기한다. 이 경우, 앞서 설명한 실시예에 근거하여 상기 애크를 전송할 것으로 판단한 시점에서, 제어부(702)는 현재까지 수신된 데이터에 대한 애크를 생성하여 바로 전송한다.
이상과 같이 본 발명의 실시예에서는 사용자 단말이 프록시 서버로 보내주는 애크를 통해서 사용자 단말이 어느 정도의 데이터를 다운로드하였는지를 추정하고, 프록시 서버가 다운로드 하는 데이터의 양을 사용자 단말이 다운로드한 데이터의 양보다 소정 임계값 만큼 많도록 컨텐츠 서버로부터의 데이터 수신을 제한한다. 또한 컨텐츠 서버로 전송될 애크가 과도하게 지연되지 않도록 함으로써, 데이터의 불필요한 재전송이 발생하는 것을 방지한다.
한편 본 발명의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능하다. 그러므로 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 아니되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.

Claims (12)

  1. 사용자 단말과 컨텐츠 서버 간에 접속되는 프록시 서버에 의한 데이터 흐름 제어 방법에 있어서,
    상기 프록시 서버로부터 상기 사용자 단말로 수신된 데이터 양을 나타내는 제1 데이터 수신양을 추정하는 과정과,
    상기 컨텐츠 서버로부터 상기 프록시 서버로 수신된 데이터 양을 나타내는 제2 데이터 수신양을 계산하는 과정과,
    상기 제2 데이터 수신양이 상기 제1 데이터 수신양보다 미리 정해지는 임계값만큼 더 많은 경우, 상기 컨텐츠 서버로부터 수신한 데이터에 대한 애크의 전송을 지연시키는 과정을 포함하는 것을 특징으로 하는 데이터 흐름 제어 방법.
  2. 제 1 항에 있어서, 상기 지연시키는 과정은,
    상기 제2 데이터 수신양과 상기 제1 데이터 수신양의 차이로서 데이터 초과양을 계산하는 과정과,
    상기 데이터 초과양이 상기 임계값보다 작지 않은 경우, 상기 애크를 상기 컨텐츠 서버로 전송하지 않고 지연시키는 과정을 포함하는 것을 특징으로 하는 데이터 흐름 제어 방법.
  3. 제 2 항에 있어서,
    상기 데이터 초과양과 상기 임계값의 차이로서 오버 데이터양을 계산하는 과정과,
    상기 오버 데이터양을 상기 애크와 함께 큐에 저장하는 과정을 더 포함하는 것을 특징으로 하는 데이터 흐름 제어 방법.
  4. 제 1 항에 있어서,
    상기 애크를 지연시킨 이후 상기 사용자 단말로 추가로 수신된 데이터양을 나타내는 업데이트된 데이터 수신양을 결정하는 과정과,
    상기 업데이트된 데이터 수신양이, 상기 제2 데이터 수신양에서 상기 제1 데이터 수신양과 상기 임계값을 감산한 오버 데이터양보다 큰 경우, 상기 애크를 상기 컨텐츠 서버로 전송하는 과정을 더 포함하는 것을 특징으로 하는 데이터 흐름 제어 방법.
  5. 제 1 항에 있어서, 상기 애크가 지연된 시간이 미리 정해지는 지연 임계값을 초과하는 경우, 상기 애크를 상기 컨텐츠 서버로 전송하는 과정을 더 포함하는 것을 특징으로 하는 데이터 흐름 제어 방법.
  6. 제 5 항에 있어서, 상기 지연 임계값은,
    상기 프록시 서버와 상기 컨텐츠 서버 간의 접속에 대해 설정된 재전송 타임아웃과 동일하게 정해짐을 특징으로 하는 데이터 흐름 제어 방법.
  7. 사용자 단말과 컨텐츠 서버 간에 접속되는 프록시 서버 내의 데이터 흐름 제어 장치에 있어서,
    상기 사용자 단말과의 데이터 송수신을 담당하는 제1 송수신부와,
    상기 컨텐츠 서버와의 데이터 송수신을 담당하는 제2 송수신부와,
    상기 제1 송수신부를 통해 상기 사용자 단말로 수신된 데이터 양을 나타내는 제1 데이터 수신양을 추정하고, 상기 제2 송수신부를 통해 상기 컨텐츠 서버로부터 수신된 데이터 양을 나타내는 제2 데이터 수신양을 계산하고, 상기 제2 데이터 수신양이 상기 제1 데이터 수신양보다 미리 정해지는 임계값만큼 더 많은 경우, 상기 컨텐츠 서버로부터 수신한 데이터에 대한 애크의 전송을 지연시키는 제어부를 포함하는 것을 특징으로 하는 데이터 흐름 제어 장치.
  8. 제 7 항에 있어서, 상기 제어부는,
    상기 제2 데이터 수신양과 상기 제1 데이터 수신양의 차이로서 데이터 초과양을 계산하고, 상기 데이터 초과양이 상기 임계값보다 작지 않은 경우, 상기 애크를 상기 컨텐츠 서버로 전송하지 않고 지연시키는 것을 특징으로 하는 데이터 흐름 제어 장치.
  9. 제 8 항에 있어서, 상기 제어부는,
    상기 데이터 초과양과 상기 임계값의 차이로서 오버 데이터양을 계산하고, 상기 오버 데이터양을 상기 애크와 함께 큐에 저장하는 것을 특징으로 하는 데이터 흐름 제어 장치.
  10. 제 7 항에 있어서, 상기 제어부는,
    상기 애크를 지연시킨 이후 상기 사용자 단말로 추가로 수신된 데이터양을 나타내는 업데이트된 데이터 수신양을 결정하고, 상기 업데이트된 데이터 수신양이, 상기 제2 데이터 수신양에서 상기 제1 데이터 수신양과 상기 임계값을 감산한 오버 데이터양보다 큰 경우, 상기 애크를 상기 제2 송수신부를 통해 상기 컨텐츠 서버로 전송하는 것을 특징으로 하는 데이터 흐름 제어 장치.
  11. 제 7 항에 있어서, 상기 제어부는,
    상기 애크가 지연된 시간이 미리 정해지는 지연 임계값을 초과하는 경우, 상기 애크를 상기 제2 송수신부를 통해 상기 컨텐츠 서버로 전송하는 것을 특징으로 하는 데이터 흐름 제어 장치.
  12. 제 11 항에 있어서, 상기 지연 임계값은,
    상기 프록시 서버와 상기 컨텐츠 서버 간의 접속에 대해 설정된 재전송 타임아웃과 동일하게 정해짐을 특징으로 하는 데이터 흐름 제어 장치.
KR20110141389A 2011-12-23 2011-12-23 프록시 서버에 의한 데이터 흐름 제어 방법 및 장치 KR20130074828A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR20110141389A KR20130074828A (ko) 2011-12-23 2011-12-23 프록시 서버에 의한 데이터 흐름 제어 방법 및 장치
PCT/KR2012/011072 WO2013094964A1 (ko) 2011-12-23 2012-12-18 프록시 서버에 의한 데이터 흐름 제어 방법 및 장치
US14/368,241 US9553814B2 (en) 2011-12-23 2012-12-18 Method and apparatus for controlling data flow by using proxy server

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20110141389A KR20130074828A (ko) 2011-12-23 2011-12-23 프록시 서버에 의한 데이터 흐름 제어 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20130074828A true KR20130074828A (ko) 2013-07-05

Family

ID=48668790

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20110141389A KR20130074828A (ko) 2011-12-23 2011-12-23 프록시 서버에 의한 데이터 흐름 제어 방법 및 장치

Country Status (3)

Country Link
US (1) US9553814B2 (ko)
KR (1) KR20130074828A (ko)
WO (1) WO2013094964A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10645609B2 (en) 2017-06-16 2020-05-05 Samsung Electronics Co., Ltd. Method and apparatus for transmitting TCP ACK in communication system

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017123124A1 (en) * 2016-01-13 2017-07-20 Telefonaktiebolaget Lm Ericsson (Publ) Method and network node for handling signals transmitted from wireless devices
CN107645782B (zh) * 2016-07-22 2020-09-01 展讯通信(上海)有限公司 数据传输控制方法、装置及用户设备
WO2018077426A1 (en) * 2016-10-28 2018-05-03 Telefonaktiebolaget Lm Ericsson (Publ) Handling of data packet transfer via a proxy
EP3673630B1 (en) * 2017-08-24 2021-10-06 Telefonaktiebolaget LM Ericsson (PUBL) Improved data transmission in wireless communications networks
US11303573B2 (en) * 2018-12-27 2022-04-12 Flash Networks, Ltd Method and system for managing the download of data
CN111953810B (zh) * 2020-08-03 2023-05-19 腾讯科技(深圳)有限公司 识别代理互联网协议地址的方法、装置及存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100808263B1 (ko) * 2006-07-12 2008-03-03 엘지전자 주식회사 이동통신 단말기의 컨텐츠 제공 시스템 및 그 동작방법
US8379515B1 (en) * 2007-02-01 2013-02-19 F5 Networks, Inc. TCP throughput control by imposing temporal delay
US8606901B2 (en) * 2008-01-30 2013-12-10 At&T Intellectual Property I, L. P. Facilitating deployment of new application services in a next generation network
KR101082786B1 (ko) * 2008-10-06 2011-11-14 에스케이플래닛 주식회사 프록시 서버를 이용한 컨텐츠 분배 시스템 및 방법
KR101140636B1 (ko) * 2009-02-02 2012-05-03 에스케이플래닛 주식회사 데이터 세그먼트 정보를 이용한 컨텐츠 전송시스템 및 방법, 그 프록시서버
US20110153828A1 (en) 2009-12-17 2011-06-23 Korea Advanced Institute Of Science And Technology Load balancing apparatus and method for regulating load using the same
KR101156597B1 (ko) * 2009-12-17 2012-06-20 한국과학기술원 부하 균등화 장치 및 이를 이용한 부하 조정 방법
EP2403186B1 (en) * 2010-07-02 2017-12-27 Vodafone IP Licensing limited Telecommunication networks

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10645609B2 (en) 2017-06-16 2020-05-05 Samsung Electronics Co., Ltd. Method and apparatus for transmitting TCP ACK in communication system

Also Published As

Publication number Publication date
WO2013094964A1 (ko) 2013-06-27
US9553814B2 (en) 2017-01-24
US20150006625A1 (en) 2015-01-01

Similar Documents

Publication Publication Date Title
US8787378B2 (en) Systems and methods to improve performance of TCP over large bandwidth-delay-product networks
CN110266605B (zh) 用于速率控制的方法和设备
KR20130074828A (ko) 프록시 서버에 의한 데이터 흐름 제어 방법 및 장치
JP6178523B2 (ja) 要求マネージャおよび接続マネージャの機能を実装するトランスポートアクセラレータ
US9548936B2 (en) Method and system for improved TCP performance over mobile data networks
JP4878391B2 (ja) 適応的なキュー待ち時間を伴うスケジューリング及びキューマネージメント
US9930097B2 (en) Transport accelerator systems and methods
KR20190030649A (ko) 동시 연결의 통합된 처리량을 향상시키기 위한 시스템 및 방법
US20080101290A1 (en) Apparatus for Arq Controlling in Wireless Portable Internet System and Method Thereof
CN111314237B (zh) 数据包传输速率的调整方法、装置、设备及可读存储介质
WO2013053304A1 (zh) 一种实现tcp传输的方法及装置
EP3262804B1 (en) Supporting delivery of data packets using transmission control protocol in a wireless communication network
CN110072254B (zh) 一种数据的传输方法及其相关设备
EP2817927A1 (en) Method and apparatus for content delivery in radio access networks
JP4328794B2 (ja) 通信システム、通信装置、及び送信制御方法
KR20170142513A (ko) 다중망 병합 전송 장치, 그리고 이의 패킷 스케줄링 방법
CN111092907B (zh) 基于udp协议的数据流快速传输方法、系统及介质
JP2006504290A (ja) Nackプロトコルの方法および装置
CN110912831B (zh) Tcp传输方法、装置及存储介质
KR102176176B1 (ko) 전송 제어 프로토콜을 이용하는 무선 네트워크에서 혼잡 제어 방법 및 장치
US7154850B1 (en) Wireless data transmission using time out control
Cabrera Molero et al. Cross-layer adaptation for TCP-based applications in WCDMA systems
JP6766817B2 (ja) データ通信装置、データ通信制御方法及びプログラム
WAN Transport Layer Optimization for Mobile Data Networks

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application