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

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

Info

Publication number
WO2013094964A1
WO2013094964A1 PCT/KR2012/011072 KR2012011072W WO2013094964A1 WO 2013094964 A1 WO2013094964 A1 WO 2013094964A1 KR 2012011072 W KR2012011072 W KR 2012011072W WO 2013094964 A1 WO2013094964 A1 WO 2013094964A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
amount
content server
ack
proxy server
Prior art date
Application number
PCT/KR2012/011072
Other languages
English (en)
French (fr)
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 US14/368,241 priority Critical patent/US9553814B2/en
Publication of WO2013094964A1 publication Critical patent/WO2013094964A1/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
    • 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
    • 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/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

Definitions

  • the present invention relates to the control of the flow of data in a communication system, and more particularly, to a method and apparatus for controlling the flow of data by a proxy server in a communication system.
  • a proxy server operates as a cache that downloads data from a content server and delivers the data to a user equipment (UE) via a radio access network.
  • UE user equipment
  • the user terminal wirelessly connects to a wireless access point (WAP) and downloads data such as a video file from a content server on a network.
  • WAP wireless access point
  • the proxy server operates as an intermediary between the content server and the wireless base station, and downloads the data requested by the user terminal from the content server and simultaneously transmits the data to the user terminal.
  • the user terminal may have a just-in-time delivery (JIT) function of adjusting the download speed of data to an appropriate speed.
  • JIT just-in-time delivery
  • the JIT feature refers to the ability to adjust video files, such as Video on Demand (VOD), to not download too much more than the point of user play. This is to reduce the amount of data that is unnecessarily downloaded if the user stops watching the video in the middle.
  • VOD Video on Demand
  • the JIT function is very useful in that it prevents waste of resources when the user plays the video file and ends in the middle without seeing the end.
  • the proxy server operates as an intermediary between the user terminal and the content server
  • the proxy server does not need to download data unnecessarily faster than the user terminal downloads. Therefore, there is a need for a technology that can adjust the data to be downloaded at an appropriate speed in consideration of the download speed of the user terminal in the proxy server.
  • the present invention provides a method and apparatus for a proxy server to adjust the reception speed of data from a content server according to the data reception speed of a user terminal.
  • the present invention provides a method and apparatus for adjusting the amount of data received by the proxy server to be slightly larger than the amount of data received by the user terminal.
  • the present invention provides a method and apparatus for adjusting a data reception speed based on an amount of data received by a user terminal when receiving data from a content server at a proxy server.
  • a data flow control method by a proxy server connected between a user terminal and a content server comprising: estimating a first data reception amount representing a data amount received from the proxy server to the user terminal; Calculating a second data reception amount representing the amount of data received by the server; and when the second data reception amount is more than the first data reception amount by a predetermined threshold, the data received from the content server. Delaying the transmission of Ack for.
  • a data flow control apparatus in a proxy server connected between a user terminal and a content server comprising: a first transceiver for data transmission and reception with the user terminal, a second transceiver for data transmission and reception with the content server; Estimating a first data reception amount indicating the amount of data received by the user terminal through the first transmission / reception unit, calculating a second data reception amount indicating the amount of data received from the content server via the second transmission / reception unit, And a control unit for delaying transmission of Ack on the data received from the content server when the second data reception amount is larger than the first data reception amount by a predetermined threshold.
  • FIG. 1 is a diagram showing a network configuration according to an embodiment of the present invention.
  • FIG. 2 illustrates a relationship between a network element and a layer structure according to an embodiment of the present invention.
  • FIG. 3 is a flowchart illustrating the operation of a proxy server according to an embodiment of the present invention.
  • FIG. 4 is a flowchart illustrating an operation of estimating data reception amount of a user terminal according to an exemplary embodiment of the present invention.
  • FIG. 5 is a flowchart illustrating an operation of determining transmission of Ack according to an embodiment of the present invention.
  • FIG. 6 is a flowchart illustrating a transmission decision operation of a stored accord according to an embodiment of the present invention.
  • FIG. 7 is a block diagram showing an internal configuration of a proxy server according to an embodiment of the present invention.
  • the proxy server controls the flow of data from the content server so that the user terminal downloads only a larger amount of data than the download amount.
  • the procedure server uses a method of delaying transmission of acknowledgment (ACK) for data downloaded from the content server.
  • ACK acknowledgment
  • This invention can be usefully applied when the user terminal has a JIT function for execution of video on demand (VOD).
  • FIG. 1 illustrates a network configuration according to an embodiment of the present invention.
  • a user terminal (UE) 102 is a portable device such as a mobile phone, a smartphone, a notebook having a communication module, and is connected to a wireless access point (WAP) 104 through a wireless access network.
  • WAP wireless access point
  • the proxy server 106 operates as an intermediary between the content server 108 and the wireless base station 104 to download the data requested by the user terminal 102 from the content server 108 and simultaneously download the data from the user terminal ( 102).
  • the proxy server 106 may be implemented as a separate entity between the content server 108 and the wireless base station 104 or may be provided near or within the wireless base station 104.
  • FIG. 2 illustrates a relationship between a network element and a layer structure according to an embodiment of the present invention.
  • the user terminal 102 includes an application such as a video player, a Transfer Control Protocol (TCP) layer 202 that operates on an Internet Protocol (IP) and controls data flow. It has a radio protocol layer.
  • Wireless base station 104 includes a wireless protocol layer for connecting user terminal 102 to proxy server 106.
  • the proxy server 106 includes an application, a TCP layer 206 and a lower L2 / L1 layer that cooperate with the TCP layer 202 of the user terminal 102.
  • the content server 108 includes an application, a TCP layer 208 and a lower L2 / L1 layer that cooperate with the TCP layer 206 of the proxy server 106.
  • the proxy server 106 receives packets (i.e., TCP segments) in which the user desired data (e.g., a video file) is divided and received through a TCP connection established with the content server 108.
  • the packet is transmitted to the user terminal 102 through a TCP connection established with the user terminal 102.
  • the proxy server 106 can regulate the TCP traffic between the proxy server 106 and the content server 108 using the amount of data delivered to the user terminal 102 and the acknowledgment from the proxy server 106. That is, by delaying the transmission of Ack from the proxy server 106 to the content server 108 based on the amount of data received by the user terminal 102, the amount of data received by the proxy server 106 can be finely adjusted. Can be.
  • each side When a TCP connection is established in the TCP protocol, each side sets a random number to its original sequence number, and the number of bytes transmitted starting from the original sequence number starting with the sequence number for each packet sent. Increase by.
  • the receiver sends an acknowledgment number to the transmitter indicating the sequence number of the next data it expects to receive.
  • the transmitter can know the amount of data received by the receiver through the acknowledgment number.
  • the Ack number is included in the TCP header in the TCP segment and transmitted.
  • the TCP segment including the Ack number will be referred to herein as a TCP Ack.
  • the proxy server 106 notifies the content server 108 of the amount of data received by the TCP server while receiving data from the content server 108, and also transmits the data received from the content server 108 to the user terminal 102. ) And receives the amount of data received by the user terminal 102 from the user terminal 102 through the TCP ack.
  • the proxy server 106 When the proxy server 106 transmits TCP packets as much as it receives data, the data is received at the maximum rate that the content server 108 can transmit. On the other hand, if the proxy server 106 sends a TCP packet to the content server 108 slowly, the transmission speed of the data is reduced. This is because the content server 108 cannot transmit data beyond the window size defined by the TCP protocol until a TCP acknowledgment arrives.
  • the proxy server 106 does not send a TCP acknowledgment, thereby slowing down the download speed from the content server 108. This can prevent the proxy server 106 from unnecessarily downloading data.
  • the proxy server 106 estimates the amount of data received by the user terminal 102 based on the arc number of the TCP acknowledgment received from the user terminal 102, and the TCP corresponding to the amount of data received by the user terminal 102. Only Ack is sent to the content server 108. That is, instead of the amount of data actually received from the content server 108, the TCP arc is transmitted to the content server 108 based on the amount of data received by the user terminal 102.
  • FIG. 3 is a flowchart illustrating the operation of a proxy server according to an embodiment of the present invention.
  • the proxy server estimates the size of data downloaded by the user terminal through the proxy server, that is, the amount of data reception.
  • the amount of data reception of the user terminal may be estimated using the Ack number included in the Ack transmitted from the user terminal.
  • the proxy server determines whether to transmit or delay the acknowledgment to be sent to the content server. The determination is performed based on the estimated amount of data reception and a predetermined threshold value.
  • the Ack for the data so far received from the content server to the proxy server is transmitted to the content server in step 306.
  • Ack for the data actually received so far in step 308 is stored in a queue in the proxy server until Ack's transmission is allowed.
  • the allowance of Ack transmission is determined by the amount of data received by the user terminal, the amount of data received by the proxy server, and the time at which Ack is queued, that is, the delay time of Ack.
  • FIG. 4 is a flowchart illustrating a data reception amount estimation operation of a user terminal according to an embodiment of the present invention.
  • the illustrated operation may be performed on a TCP connection between the proxy server and the user terminal periodically or by a predetermined command or event.
  • triggering when an ack is received from a user terminal will be described as an example.
  • the proxy server receives an Ack from a user terminal, and extracts an Ack number included in the Ack in step 404.
  • the proxy server estimates the amount of data reception of the user terminal based on the maximum arc number and the initial sequence number determined when the TCP connection is established.
  • the amount of data reception (Estimated_Received_bytes_by_UE) of the user terminal is calculated by subtracting the initial sequence number (Starting_TCP_seq) from the maximum arc number (Ack_Max).
  • FIG. 5 is a flowchart illustrating a transmission decision operation of a TCP packet according to an embodiment of the present invention.
  • the illustrated operation may be triggered periodically or by a predetermined event.
  • triggering when the data reception amount of the user terminal is estimated will be described as an example.
  • the proxy server calculates the size of data received from the content server, that is, the amount of data received by the proxy server.
  • the data reception amount (Received_byte_by_proxy) of the proxy server subtracts the initial sequence number (Starting_TCP_seq) set for the TCP connection between the proxy server and the content server from the arc number (Ack_Num) obtained from the arc received from the content server. Is calculated.
  • the Ack number may be the maximum Ack number received from the content server.
  • Received_byte_by_proxy Ack_Num- Starting_TCP_seq
  • the proxy server calculates the amount of data excess compared to the user terminal.
  • the data excess amount Exec_Byte is calculated by subtracting the data reception amount Estimated_received_bytes_by_UE of the user terminal from the data amount Received_bytes_by_Proxy received from the content server by the proxy server.
  • the data excess amount is compared with a predetermined threshold. If the amount of data excess is less than the threshold, in step 508 the proxy server sends an acknowledgment of the data received so far to the content server.
  • the threshold value may be determined in consideration of at least one of a data reception speed from a content server, a data transmission speed to a user terminal, a caching capability of a proxy server, and other parameters.
  • step 512 the proxy server queues an acknowledgment of the data received so far.
  • the over data amount is stored in the queue together with the acknowledgment.
  • the threshold value compared with the data excess amount may be fixed or variable by a system designer or an operator.
  • the threshold may be determined by at least one of jitter (jitter_for_proxy_UE_connection) in a TCP connection between the proxy server and the user terminal, jitter (jitter_for_proxy_server_connection) in a TCP connection between the proxy server and the content server, and a video data rate (video_data_rate).
  • jitter_for_proxy_UE_connection in a TCP connection between the proxy server and the user terminal
  • jitter_for_proxy_server_connection in a TCP connection between the proxy server and the content server
  • video data rate video_data_rate
  • a, b, and c mean weight coefficients predetermined.
  • the proxy server may use the data reception amount of the user terminal at the time when Ack is stored in the queue and the data reception amount of the user terminal at the present time.
  • FIG. 6 is a flowchart illustrating a transmission determination operation of a stored TCP acknowledgment according to an embodiment of the present invention.
  • the illustrated operation relates to determining when the proxy server will send an queued ac, and may be triggered periodically or by a predetermined event. As an example, the operation shown may be triggered when an acknowledgment is received from the user terminal and the amount of data reception of the user terminal is updated.
  • the proxy server determines an updated amount of data reception indicating the amount of data additionally received from the user terminal since the Ack is stored in the queue.
  • the updated data reception amount (Updated_UE_download) is the amount of data reception (Estimated_Received_bytes_by_UE @) of the user terminal at the time when Ack was queued (queued_time) in the data reception amount (Estimated_Received_bytes_by_UE @ now) of the user terminal at the current time. computed by subtracting queued_time).
  • Updated_UE_download Estimated_Received_bytes_by_UE @ now-Estimated_Received_bytes_by_UE @ queued_time
  • the proxy server determines whether the updated data reception amount (Updated_UE_download) is larger than the over data amount (over_threshold @ queued_time) at the time when Ack is stored in the queue.
  • the over data amount is a value calculated in step 510 and stored in a queue.
  • the proxy server determines whether a delay time (now-queued_time) indicating a time when the acqueue is stored in the queue is greater than a predetermined delay threshold. If the delay time is greater, the queued Ack is sent to the content server. This is to prevent the Ack from excessively delaying the content server unnecessarily resending already transmitted data. On the other hand, if the delay time is not greater, Ack continues to be stored in the queue.
  • the delay threshold may be determined in the same manner as the retransmission timeout required by the TCP protocol or in consideration of the retransmission timeout.
  • the Ack stored in the queue is transmitted to the content server. It becomes possible.
  • the user terminal has downloaded 1000 bytes of data through the proxy server, and the proxy server has downloaded 1500 bytes of data from the content server. If the threshold is 300 bytes, this means that the proxy server only wants to download up to 1300 bytes, but since the proxy server currently has 1500 bytes downloaded, the ack for 1500 bytes is not sent to the content server and queued. do. In addition, 200 bytes, which is an amount of over data for 1300 bytes, are stored in the queue together with the ac.
  • Estimated_received_bytes_by_UE @ NOW is 1250 bytes
  • Estimated_received_bytes_by_UE @ queued_time is 1000 bytes
  • Updated_UE_download is 250 bytes.
  • the Updated_UE_download exceeds 200 bytes which is Over_threshold @ queued_time. The proxy server is therefore allowed to store queued Ack.
  • FIG. 7 is a block diagram showing the configuration of a proxy server according to an embodiment of the present invention. Here, only the components related to the embodiment of the present invention are shown in the configuration of the proxy server.
  • a proxy server includes data between a first transceiver 704 that interfaces with a user terminal, a second transceiver 706 that interfaces with a content server, and the first and second transceivers 704 and 706.
  • Control unit 702 for controlling the flow and data transmission and reception operations in the first and second transceivers 704 and 706, and a memory 708 for storing program codes and parameters and cached data necessary for the operation of the controller 702. ).
  • the control unit 702 estimates the amount of data received by the user terminal with reference to the acknowledgment received from the user terminal through the first transceiver 704, and is received from the content server 706 through the second transceiver 706.
  • the data is monitored to calculate the amount of data received by the proxy server and generate an acknowledgment for the received data.
  • the controller 702 determines whether to transmit the ack based on the above-described embodiment, and if it is determined that the ack is to be delayed, the controller 702 stores the ack in a queue in the controller 702. Otherwise, the Ack is transmitted to the content server through the second transceiver 706.
  • the controller 702 may first determine whether to transmit the ack without immediately generating the ack for the received data. If it is determined that the ack is to be delayed as a result of the determination, the controller 702 waits without generating an ack until a point where the ack transmission is allowed. In this case, when it is determined that the Ack is to be transmitted based on the above-described embodiment, the controller 702 generates an Ack for the data received so far and immediately transmits the Ack.
  • the user terminal estimates how much data has been downloaded by the user terminal to the proxy server, and the amount of data downloaded by the user terminal to the amount of data downloaded by the proxy server. Restrict data reception from the content server to be as much as a predetermined threshold. In addition, by preventing the delay to be transmitted to the content server is not excessively delayed, unnecessary retransmission of data is prevented from occurring.
  • the proxy server may adjust the amount of data downloaded from the content server, thereby implementing the JIT function in the proxy server.
  • the JIT function of the proxy server is made within the limit of not interfering with the JIT function of the user terminal, the amount of download to the proxy server can be minimized, thereby preventing the network load and unnecessary waste of resources.

Landscapes

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

Abstract

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

Description

프록시 서버에 의한 데이터 흐름 제어 방법 및 장치
본 발명은 통신 시스템에서 데이터의 흐름 제어에 관한 것으로서, 특히, 통신 시스템에서 프록시 서버에 의해 데이터 흐름을 제어하는 방법 및 장치에 관한 것이다.
통신 시스템에서 프록시 서버는 컨텐츠 서버로부터 데이터를 다운로드 하여 무선 액세스 네트워크를 통해 사용자 단말(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 데이터 수신양보다 미리 정해지는 임계값만큼 더 많은 경우, 상기 컨텐츠 서버로부터 수신한 데이터에 대한 애크의 전송을 지연시키는 제어부를 포함한다.
도 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)로 전송해 준다. 일 예로서 프록시 서버(106)는 컨텐츠 서버(108)과 무선 기지국(104) 사이의 독립된 개체로서 구현되거나, 혹은 무선 기지국(104)의 가까이 혹은 그 내부에 구비될 수 있다.
도 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>은 상기 임계값을 결정하는 일 예를 나타낸 것이다.
수학식 1
Figure PCTKR2012011072-appb-M000001
여기서 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)는 현재까지 수신된 데이터에 대한 애크를 생성하여 바로 전송한다.
이상과 같이 본 발명의 실시예에서는 사용자 단말이 프록시 서버로 보내주는 애크를 통해서 사용자 단말이 어느 정도의 데이터를 다운로드하였는지를 추정하고, 프록시 서버가 다운로드 하는 데이터의 양을 사용자 단말이 다운로드한 데이터의 양보다 소정 임계값 만큼 많도록 컨텐츠 서버로부터의 데이터 수신을 제한한다. 또한 컨텐츠 서버로 전송될 애크가 과도하게 지연되지 않도록 함으로써, 데이터의 불필요한 재전송이 발생하는 것을 방지한다.
본 발명의 개시된 실시예에 따르면, 프록시 서버는 컨텐츠 서버로부터 다운로드 하는 데이터의 양을 조절할 수 있으며, 이를 통해서 프록시 서버에서 JIT 기능을 구현할 수 있다. 또한 프록시 서버의 JIT 기능은 사용자 단말의 JIT 기능을 방해하지 않는 한도 내에서 이루어지면서 프록시 서버로의 다운로드 양을 최소화할 수 있으므로, 네트워크의 부하와 불필요한 자원의 낭비를 막을 수 있다는 장점을 가진다.
한편 본 발명의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구의 범위뿐 아니라 이 특허청구의 범위와 균등한 것들에 의해서 정해져야 한다.

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 항에 있어서, 상기 지연 임계값은,
    상기 프록시 서버와 상기 컨텐츠 서버 간의 접속에 대해 설정된 재전송 타임아웃과 동일하게 정해짐을 특징으로 하는 데이터 흐름 제어 장치.
PCT/KR2012/011072 2011-12-23 2012-12-18 프록시 서버에 의한 데이터 흐름 제어 방법 및 장치 WO2013094964A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
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 (2)

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

Publications (1)

Publication Number Publication Date
WO2013094964A1 true WO2013094964A1 (ko) 2013-06-27

Family

ID=48668790

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2012/011072 WO2013094964A1 (ko) 2011-12-23 2012-12-18 프록시 서버에 의한 데이터 흐름 제어 방법 및 장치

Country Status (3)

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

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107645782A (zh) * 2016-07-22 2018-01-30 展讯通信(上海)有限公司 数据传输控制方法、装置及用户设备
US20180368021A1 (en) * 2017-06-16 2018-12-20 Samsung Electronics Co., Ltd. Method and apparatus for transmitting tcp ack in communication system
CN111953810A (zh) * 2020-08-03 2020-11-17 腾讯科技(深圳)有限公司 识别代理互联网协议地址的方法、装置及存储介质

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10985896B2 (en) 2016-01-13 2021-04-20 Telefonaktiebolaget Lm Ericsson (Publ) Method and network node for handling signals transmitted from wireless devices
US11088957B2 (en) * 2016-10-28 2021-08-10 Telefonaktiebolaget Lm Ericsson (Publ) Handling of data packet transfer via a proxy
WO2019037852A1 (en) * 2017-08-24 2019-02-28 Telefonaktiebolaget Lm Ericsson (Publ) IMPROVED DATA TRANSMISSION IN WIRELESS COMMUNICATION NETWORKS
US11303573B2 (en) * 2018-12-27 2022-04-12 Flash Networks, Ltd Method and system for managing the download of data

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080006373A (ko) * 2006-07-12 2008-01-16 엘지전자 주식회사 이동통신 단말기의 컨텐츠 제공 시스템 및 그 동작방법
KR20100038798A (ko) * 2008-10-06 2010-04-15 에스케이텔레콤 주식회사 프록시 서버를 이용한 컨텐츠 분배 시스템 및 방법
KR20100088990A (ko) * 2009-02-02 2010-08-11 에스케이텔레콤 주식회사 데이터 세그먼트 정보를 이용한 컨텐츠 전송시스템 및 방법, 그 프록시서버
KR20110069691A (ko) * 2009-12-17 2011-06-23 한국과학기술원 부하 균등화 장치 및 이를 이용한 부하 조정 방법

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
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
EP2403186B1 (en) * 2010-07-02 2017-12-27 Vodafone IP Licensing limited Telecommunication networks

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080006373A (ko) * 2006-07-12 2008-01-16 엘지전자 주식회사 이동통신 단말기의 컨텐츠 제공 시스템 및 그 동작방법
KR20100038798A (ko) * 2008-10-06 2010-04-15 에스케이텔레콤 주식회사 프록시 서버를 이용한 컨텐츠 분배 시스템 및 방법
KR20100088990A (ko) * 2009-02-02 2010-08-11 에스케이텔레콤 주식회사 데이터 세그먼트 정보를 이용한 컨텐츠 전송시스템 및 방법, 그 프록시서버
KR20110069691A (ko) * 2009-12-17 2011-06-23 한국과학기술원 부하 균등화 장치 및 이를 이용한 부하 조정 방법

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107645782A (zh) * 2016-07-22 2018-01-30 展讯通信(上海)有限公司 数据传输控制方法、装置及用户设备
CN107645782B (zh) * 2016-07-22 2020-09-01 展讯通信(上海)有限公司 数据传输控制方法、装置及用户设备
US20180368021A1 (en) * 2017-06-16 2018-12-20 Samsung Electronics Co., Ltd. Method and apparatus for transmitting tcp ack in communication system
US10645609B2 (en) * 2017-06-16 2020-05-05 Samsung Electronics Co., Ltd. Method and apparatus for transmitting TCP ACK in communication system
CN111953810A (zh) * 2020-08-03 2020-11-17 腾讯科技(深圳)有限公司 识别代理互联网协议地址的方法、装置及存储介质
CN111953810B (zh) * 2020-08-03 2023-05-19 腾讯科技(深圳)有限公司 识别代理互联网协议地址的方法、装置及存储介质

Also Published As

Publication number Publication date
US9553814B2 (en) 2017-01-24
US20150006625A1 (en) 2015-01-01
KR20130074828A (ko) 2013-07-05

Similar Documents

Publication Publication Date Title
WO2013094964A1 (ko) 프록시 서버에 의한 데이터 흐름 제어 방법 및 장치
CN108234338B (zh) 报文传输方法及混合接入网关
US8787378B2 (en) Systems and methods to improve performance of TCP over large bandwidth-delay-product networks
US8521901B2 (en) TCP burst avoidance
EP3120521A1 (en) Transport accelerator implementing request manager and connection manager functionality
US7675898B2 (en) Session relay apparatus for relaying data, and a data relaying method
KR20010080354A (ko) 확인 응답 타이머를 시작하기 위한 방법 및 장치
CN110072254B (zh) 一种数据的传输方法及其相关设备
CN111314237A (zh) 数据包传输速率的调整方法、装置、设备及可读存储介质
WO2013139276A1 (en) Method and apparatus for content delivery in radio access networks
JP2010148110A (ja) データトラフィックシェーピング方法、装置、および、ワイヤレス機器
WO2010044521A1 (en) Method for pdu reordering in wireless communication system
NO338397B1 (no) Tildeling av trådløse kanaler i en basestasjonsprosessor
WO2007067388A2 (en) Starvation reduction in tcp/ip applications
EP1323268A2 (en) Dynamic tcp configuration for low latency voice/data traffic
US7154850B1 (en) Wireless data transmission using time out control
CN110912831B (zh) Tcp传输方法、装置及存储介质
KR20020021577A (ko) 무선 패킷 데이터시스템의 수신 트래픽 양 결정방법 및 장치
CN115348481B (zh) 一种数据传输方法、装置、发送器及接收器
CN114172977B (zh) 一种传输控制协议tcp代理方法、装置及基站
CN114585018B (zh) 一种防止5g下行tcp的ack包拥塞的方法、基站、终端与系统
CN114585019B (zh) 一种5g下行tcp的ack包防拥塞方法、基站、终端与系统
US8773991B2 (en) Bandwidth control method
CN102546626A (zh) 一种数据处理方法、装置及系统
KR100446434B1 (ko) 확인응답 세그먼트 제어 시스템 및 방법

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12859437

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 14368241

Country of ref document: US

122 Ep: pct application non-entry in european phase

Ref document number: 12859437

Country of ref document: EP

Kind code of ref document: A1