KR20180010531A - Method and apparatus for controlling send buffer of transport control protocol in communication system - Google Patents
Method and apparatus for controlling send buffer of transport control protocol in communication system Download PDFInfo
- Publication number
- KR20180010531A KR20180010531A KR1020160092784A KR20160092784A KR20180010531A KR 20180010531 A KR20180010531 A KR 20180010531A KR 1020160092784 A KR1020160092784 A KR 1020160092784A KR 20160092784 A KR20160092784 A KR 20160092784A KR 20180010531 A KR20180010531 A KR 20180010531A
- Authority
- KR
- South Korea
- Prior art keywords
- value
- size
- rtt
- current
- tcp
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/28—Flow control; Congestion control in relation to timing considerations
- H04L47/283—Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
- H04L43/0864—Round trip delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/27—Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/29—Flow control; Congestion control using a combination of thresholds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/36—Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/16—Threshold monitoring
Abstract
Description
본 개시는 통신 시스템에서 전송 제어 프로토콜(transport control protocol : TCP)의 전송 버퍼를 제어하기 위한 방법 및 장치에 관한 것이다.The present disclosure relates to a method and apparatus for controlling a transport buffer of a transport control protocol (TCP) in a communication system.
통신 시스템에서 TCP는 인터넷의 핵심적인 프로토콜 중의 하나로서, 인터넷 프로토콜(internet protocol : IP) 네트워크 상의 호스트(host)에서 동작하는 어플리케이션 간의 신뢰성 있는 데이터 패킷 전송하기 위한 프로토콜이다. 상기 TCP는 처리율 성능의 최대화, 플로우(flow) 간의 공정성(fairness) 보장 등을 목표로 다양한 프로토콜이 개발되었다. 일 예로, 상기 TCP는 무선 네트워크에 특화된 다양한 프로토콜로, TCP 베이거스(vegas), 웨스트우드(Westwood) 및 베노(Veno) 등과 같은 프로토콜이 제안되었다. 그리고 상기 TCP는 대역폭 지연 시간 곱(bandwidth delay product)이 큰 네트워크를 위한 프로토콜로, 고속(high-speed) TCP, 큐빅(cubic) 및 패스트(fast) 등과 같은 프로토콜이 제안되었다. 또한 상기 TCP는 데이터 패킷 센터에 특화된 데이터 패킷 센터 TCP(data center TCP : DCTCP), 훌(HULL) 등과 같은 프로토콜과 여러 전송 경로를 동시에 활용하는 다중 경로(multi-path) 프로토콜들과 같은 프로토콜이 제안되었다.In the communication system, TCP is one of the core protocols of the Internet and is a protocol for reliably transmitting data packets between applications operating on a host on an internet protocol (IP) network. Various TCP protocols have been developed for maximizing throughput performance and ensuring fairness between flows. For example, the TCP has been proposed in various protocols specific to wireless networks, such as TCP, vegas, Westwood, and Veno. The TCP is a protocol for a network having a large bandwidth delay product, and a protocol such as high-speed TCP, cubic, and fast has been proposed. In addition, the TCP has a protocol such as a data packet center TCP (data center TCP: DCTCP), a HULL protocol specific to a data packet center, and a multi-path protocol using multiple transmission paths simultaneously .
종래 제안된 TCP는 지연 시간을 고려할 때 TCP 상에서 측정된 라운드 트립 타임(round trip time : RTT)에서 발생되는 지연 시간을 최소화하기 위한 방안을 고려하였다. 그러나, 실시간 스트리밍 등과 같이 지연 시간이 중요한 어플리케이션에서는 어플리케이션 간에 발생되는 지연 시간을 최소화하는 것이 중요하다. 즉 데이터 패킷을 전송하는 어플리케이션에서 TCP의 전송 장치(sender)로 데이터 패킷을 내려 보내는 시점(예컨대, 소켓에 데이터 패킷을 쓰는 시점)으로부터 데이터 패킷을 수신하는 어플리케이션에서 TCP의 수신 장치(receiver)로부터 데이터 패킷을 전달 받는 시점(예컨대, 소켓으로부터 데이터 패킷을 읽는 시점)까지 걸리는 시간이 실제 어플리케이션의 성능에 크게 영향을 주는 것이다. 이러한 어플리케이션 간 지연 시간에 크게 영향을 미치는 것이 TCP의 전송 장치에서 관리하는 전송 버퍼(send buffer)의 크기이다. 기존의 TCP에서는 데이터 패킷의 처리율 성능을 최대화하기 위해 전송 장치에서 관리하는 전송 버퍼의 크기를 가능한 크게 유지하였다. 일 예로, 리눅스의 경우, 혼잡 윈도우(congestion window)의 크기를 고려하여, 혼잡 윈도우의 크기에 하나의 데이터 패킷 당 차지하는 메모리 용량을 곱하고, 좀 더 여유로운 크기를 갖도록 2를 곱한 값을, 전송 버퍼의 크기로 결정한다. 따라서 리눅스의 경우 혼잡 윈도우의 크기가 커지면 전송 버퍼의 크기도 급격하게 커지게 된다. 상기 전송 장치에서 관리하는 전송 버퍼의 크기가 커지면, 전송 장치에서 전송 기회가 생길 때마다 보낼 수 있는 데이터 패킷의 수를 충분히 확보하게 되므로 최대 처리율을 유지하는데 도움이 될 수 있다. 그러나 전송 버퍼의 크기가 지나치게 커지면 데이터 패킷이 실제 네트워크 상에서 전송되는 데 소모되는 시간보다 전송 장치에서 전송 기회를 기다리면서 소모되는 시간이 매우 커지게 된다. 이로 인해 어플리케이션 간 지연 시간의 증가는 저 지연 시간 전송이 중요한 실시간 스트리밍 및 화상회의 등과 같은 어플리케이션에서 서비스 품질을 크게 저하시킬 수 있다. 이를 위해, TCP에서 데이터 패킷의 처리율에 대한 성능을 저하 시키지 않으면서, 어플리케이션 간 지연 시간을 최소화할 수 있는 방안이 요구된다.Considering the delay time, the conventional TCP considers a method for minimizing the delay time caused by the round trip time (RTT) measured on the TCP. However, in applications where latency is important, such as in real-time streaming, it is important to minimize the latency between applications. That is, in an application that receives a data packet from a point of time when a data packet is sent to a sender of a TCP in an application that transmits a data packet (for example, a time when a data packet is written to the socket) The time taken from when the packet is received (for example, when reading the data packet from the socket) greatly affects the performance of the actual application. The size of the send buffer managed by the transmission device of the TCP greatly affects the delay time between such applications. In the conventional TCP, the size of the transmission buffer managed by the transmission apparatus is kept as large as possible in order to maximize the throughput performance of the data packet. For example, in the case of Linux, considering the size of the congestion window, a value obtained by multiplying the size of the congestion window by the memory capacity occupied per data packet, multiplied by 2 so as to have a more relaxed size, Size. Therefore, in the case of Linux, the size of the congestion window increases, and the size of the transmission buffer rapidly increases. If the size of the transmission buffer managed by the transmission apparatus increases, the number of data packets that can be transmitted each time a transmission opportunity occurs in the transmission apparatus is sufficiently secured, which can help maintain the maximum throughput. However, if the size of the transmission buffer is excessively large, the time required for the transmission device to wait for the transmission opportunity becomes longer than the time required for the data packet to be transmitted on the actual network. This increases the latency between applications, which can degrade service quality significantly in applications such as live streaming and videoconferencing where low latency transmission is critical. To this end, there is a need to minimize latency between applications without degrading the throughput of the data packets in TCP.
본 개시의 일 실시 예는 통신 시스템에서 어플리케이션 간의 지연 시간을 최소화하도록 전송 버퍼를 제어하는 방법 및 장치를 제공한다.One embodiment of the present disclosure provides a method and apparatus for controlling a transmit buffer to minimize latency between applications in a communication system.
또한 본 개시의 일 실시 예는 통신 시스템에서 이용되는 TCP의 전송 버퍼의 크기를 네트워크 상황에 따라 제어하는 방법 및 장치를 제공한다.In addition, one embodiment of the present disclosure provides a method and apparatus for controlling the size of a transmission buffer of TCP used in a communication system according to a network situation.
본 개시의 일 실시 예에서 제안하는 방법은; 통신 시스템에서 전송 제어 프로토콜(transport control protocol : TCP)의 전송 버퍼를 제어하는 방법에 있어서, 상기 TCP에서 현재 라운드 트립 타임(round trip time : RTT) 값 및 최소 RTT 값을 확인하는 과정; 및 상기 TCP에 따른 혼잡 제어 방식에서 현재 단계, 상기 현재 RTT 값 및 상기 최소 RTT 값 중 적어도 하나를 기반으로 전송 버퍼의 크기를 조정하는 과정을 포함한다.The method proposed in an embodiment of the present disclosure includes: A method of controlling a transport buffer of a transport control protocol (TCP) in a communication system, the method comprising: checking a current round trip time (RTT) value and a minimum RTT value in the TCP; And adjusting a size of the transmission buffer based on at least one of the current step, the current RTT value, and the minimum RTT value in the congestion control scheme according to the TCP.
또한 본 개시의 일 실시 예에서 제안하는 방법은; 통신 시스템에서 전송 제어 프로토콜(transport control protocol : TCP)의 전송 버퍼를 제어하는 방법에 있어서, 상대 장치로 정상 응답 신호(TCP acknowledgement)를 전송하는 경우의 라운드 트립 타임(round trip time : RTT) 값을 기반으로 상기 TCP에 따른 혼잡 제어 방식에서 현재 단계를 예측하는 과정; 상기 상대 장치로부터 수신된 데이터 패킷을 기반으로 혼잡 윈도우의 크기를 예측하는 과정; 상기 TCP에서 현재 RTT 값 및 최소 RTT 값을 확인하는 과정; 및 상기 현재 단계, 상기 혼잡 윈도우의 크기, 상기 현재 RTT 값 및 상기 최소 RTT 값 중 적어도 하나를 기반으로 상기 상대 장치로 전송할 윈도우의 크기를 조정하는 과정을 포함한다.Also, a method proposed in an embodiment of the present disclosure includes: A method of controlling a transmission buffer of a transport control protocol (TCP) in a communication system, the method comprising: receiving a round trip time (RTT) value when transmitting a normal acknowledgment signal A step of predicting a current step in a congestion control scheme according to the TCP; Estimating a size of a congestion window based on a data packet received from the counterpart device; Checking a current RTT value and a minimum RTT value in the TCP; And adjusting a size of a window to be transmitted to the counterpart apparatus based on at least one of the current step, the congestion window size, the current RTT value, and the minimum RTT value.
또한 본 개시의 일 실시 예에서 제안하는 장치는; 통신 시스템에서 전송 제어 프로토콜(transport control protocol : TCP)의 전송 버퍼를 제어하는 장치에 있어서, 데이터 패킷을 송수신하는 송수신부; 및 상기 TCP에서 현재 라운드 트립 타임(round trip time : RTT) 값 및 최소 RTT 값을 확인하고, 상기 TCP에 따른 혼잡 제어 방식에서 현재 단계, 상기 현재 RTT 값 및 상기 최소 RTT 값 중 적어도 하나를 기반으로 전송 버퍼의 크기를 조정하는 제어부를 포함한다.Also, an apparatus proposed in an embodiment of the present disclosure includes: An apparatus for controlling a transmission buffer of a transport control protocol (TCP) in a communication system, the apparatus comprising: a transceiver for transmitting and receiving data packets; And determining a current round trip time (RTT) value and a minimum RTT value in the TCP, and based on at least one of the current step, the current RTT value, and the minimum RTT value in the congestion control scheme according to the TCP And a control unit for adjusting the size of the transmission buffer.
또한 본 개시의 일 실시 예에서 제안하는 장치는; 통신 시스템에서 전송 제어 프로토콜(transport control protocol : TCP)의 전송 버퍼를 제어하는 장치에 있어서, 데이터 패킷을 송수신하는 송수신부; 및 상대 장치로 정상 응답 신호(TCP acknowledgement)를 전송하는 경우의 라운드 트립 타임(round trip time : RTT) 값을 기반으로 상기 TCP에 따른 혼잡 제어 방식에서 현재 단계를 예측하고, 상기 송수신부를 통해 수신된 데이터 패킷을 기반으로 혼잡 윈도우의 크기를 예측하고, 상기 TCP에서 현재 RTT 값 및 최소 RTT 값을 확인하여, 상기 현재 단계, 상기 혼잡 윈도우의 크기, 상기 현재 RTT 값 및 상기 최소 RTT 값 중 적어도 하나를 기반으로 상기 상대 장치로 전송할 윈도우의 크기를 조정하는 제어부를 포함한다.Also, an apparatus proposed in an embodiment of the present disclosure includes: An apparatus for controlling a transmission buffer of a transport control protocol (TCP) in a communication system, the apparatus comprising: a transceiver for transmitting and receiving data packets; And a round trip time (RTT) value in the case of transmitting a normal acknowledgment signal (TCP acknowledgment) to the counterpart device, predicts a current step in the congestion control scheme according to the TCP, Estimating a size of the congestion window based on the data packet, checking the current RTT value and the minimum RTT value in the TCP, and determining at least one of the current step, the congestion window size, the current RTT value, And a controller for adjusting a size of a window to be transmitted to the counterpart device based on the size of the window.
본 개시의 다른 측면들과, 이득들 및 핵심적인 특징들은 부가 도면들과 함께 처리되고, 본 개시의 바람직한 실시 예들을 개시하는, 하기의 구체적인 설명으로부터 해당 기술 분야의 당업자에게 자명할 것이다.Other aspects of the present disclosure, as well as benefits and key features, will be apparent to those skilled in the art from the following detailed description, which is set forth in the accompanying drawings and which discloses preferred embodiments of the disclosure.
하기의 본 개시의 구체적인 설명 부분을 처리하기 전에, 이 특허 문서를 통해 사용되는 특정 단어들 및 구문들에 대한 정의들을 설정하는 것이 효과적일 수 있다: 상기 용어들 "포함하다(include)" 및 "포함하다(comprise)"와 그 파생어들은 한정없는 포함을 의미하며; 상기 용어 "혹은(or)"은 포괄적이고, "및/또는"을 의미하고; 상기 구문들 "~와 연관되는(associated with)" 및 "~와 연관되는(associated therewith)"과 그 파생어들은 포함하고(include), ~내에 포함되고(be included within), ~와 서로 연결되고(interconnect with), 포함하고(contain), ~내에 포함되고(be contained within), ~에 연결하거나 혹은 ~와 연결하고(connect to or with), ~에 연결하거나 혹은 ~와 연결하고(couple to or with), ~와 통신 가능하고(be communicable with), ~와 협조하고(cooperate with), 인터리빙하고(interleave), 병치하고(juxtapose), ~로 가장 근접하고(be proximate to), ~로 ~할 가능성이 크거나 혹은 ~와 ~할 가능성이 크고(be bound to or with), 가지고(have), 소유하고(have a property of) 등과 같은 내용을 의미하고; 상기 용어 "제어기"는 적어도 하나의 동작을 제어하는 임의의 디바이스, 시스템, 혹은 그 부분을 의미하고, 상기와 같은 디바이스는 하드웨어, 펌웨어 혹은 소프트웨어, 혹은 상기 하드웨어, 펌웨어 혹은 소프트웨어 중 적어도 2개의 몇몇 조합에서 구현될 수 있다. 어떤 특정 제어기와 연관되는 기능성이라도 집중화되거나 혹은 분산될 수 있으며, 국부적이거나 원격적일 수도 있다는 것에 주의해야만 할 것이다. 특정 단어들 및 구문들에 대한 정의들은 이 특허 문서에 걸쳐 제공되고, 해당 기술 분야의 당업자는 많은 경우, 대부분의 경우가 아니라고 해도, 상기와 같은 정의들이 종래 뿐만 아니라 상기와 같이 정의된 단어들 및 구문들의 미래의 사용들에도 적용된다는 것을 이해해야만 할 것이다.It may be effective to define definitions for certain words and phrases used throughout this patent document before processing the specific description portions of the present disclosure below: "include" and " Comprise "and its derivatives mean inclusive inclusion; The term " or "is inclusive and means" and / or "; The terms " associated with "and " associated therewith ", as well as their derivatives, are included within, (A) to (A) to (B) to (C) to (C) to (C) Be communicable with, cooperate with, interleave, juxtapose, be proximate to, possibility to communicate with, possibility to communicate with, It means big or is bound to or with, have a property of, etc .; The term "controller" means any device, system, or portion thereof that controls at least one operation, such devices may be hardware, firmware or software, or some combination of at least two of the hardware, Lt; / RTI > It should be noted that the functionality associated with any particular controller may be centralized or distributed, and may be local or remote. Definitions for particular words and phrases are provided throughout this patent document and those skilled in the art will recognize that such definitions are not only conventional, But also to future uses of the phrases.
도 1은 본 개시의 실시 예에 따른 통신 시스템의 일 예를 나타낸 도면,
도 2a 및 도 2b는 본 개시의 실시 예에 따른 통신 시스템에서 전송 장치(110)에 의해 전송 버퍼를 제어하는 방법을 나타낸 도면,
도 3은 본 개시의 실시 예에서 RTT 값에 따른 TCP의 전송 버퍼의 크기 변화의 일 예를 나타낸 도면,
도 4는 본 개시의 실시 예에 따른 통신 시스템에서 수신 장치(150)에 의해 전송 버퍼를 제어하는 방법을 나타낸 도면,
도 5는 본 개시의 실시 예에 따른 통신 시스템에서 중계 장치(130)에 의해 전송 버퍼를 제어하는 방법을 나타낸 도면,
도 6은 본 개시의 실시 예에 따른 통신 시스템에서 TCP의 전송 버퍼를 제어하는 전송 장치(110)의 내부 구성을 나타낸 도면,
도 7은 본 개시의 실시 예에 따른 통신 시스템에서 TCP의 전송 버퍼를 제어하는 수신 장치(150)의 내부 구성을 나타낸 도면,
도 8은 본 개시의 실시 예에 따른 통신 시스템에서 TCP의 전송 버퍼를 제어하는 중계 장치(130)의 내부 구성을 나타낸 도면,
도 9는 현재 통신 시스템의 TCP에서 지연 시간이 발생되는 장치를 확인한 결과를 나타낸 도면,
도 10은 통신 시스템에서 송신 장치(110) 및 수신 장치(150)에 본 개시의 실시 예에 따른 TCP의 전송 버퍼를 제어하는 방법을 적용한 결과를 나타낸 도면,
도 11은 통신 시스템에서 송신 장치(110), 중계 장치(130) 및 수신 장치(150)에 본 개시의 실시 예에 따른 TCP의 전송 버퍼를 제어하는 방법을 적용한 결과를 나타낸 도면.
상기 도면들을 통해, 유사 참조 번호들은 동일한 혹은 유사한 엘리먼트들과, 특징들 및 구조들을 도시하기 위해 사용된다는 것에 유의해야만 한다.1 is a diagram illustrating an example of a communication system according to an embodiment of the present disclosure;
2A and 2B are diagrams illustrating a method of controlling a transmission buffer by a
3 is a diagram illustrating an example of a size change of a transmission buffer of TCP according to an RTT value in the embodiment of the present disclosure;
4 is a diagram illustrating a method of controlling a transmission buffer by a receiving
5 is a diagram illustrating a method of controlling a transmission buffer by a
6 is a diagram illustrating an internal configuration of a
7 is a diagram illustrating an internal configuration of a receiving
8 is a diagram illustrating an internal configuration of a
9 is a diagram showing a result of checking a device in which a delay time is generated in TCP of the current communication system,
10 is a diagram illustrating a result of applying a method of controlling a transmission buffer of TCP according to an embodiment of the present invention to a transmitting
11 is a diagram illustrating a result of applying a method of controlling a transmission buffer of TCP according to an embodiment of the present disclosure to a transmitting
Throughout the drawings, it should be noted that like reference numerals are used to illustrate the same or similar elements and features and structures.
첨부되는 도면들을 참조하는 하기의 상세한 설명은 청구항들 및 청구항들의 균등들로 정의되는 본 개시의 다양한 실시 예들을 포괄적으로 이해하는데 있어 도움을 줄 것이다. 하기의 상세한 설명은 그 이해를 위해 다양한 특정 구체 사항들을 포함하지만, 이는 단순히 예로서만 간주될 것이다. 따라서, 해당 기술 분야의 당업자는 여기에서 설명되는 다양한 실시 예들의 다양한 변경들 및 수정들이 본 개시의 범위 및 사상으로부터 벗어남이 없이 이루어질 수 있다는 것을 인식할 것이다. 또한, 공지의 기능들 및 구성들에 대한 설명은 명료성 및 간결성을 위해 생략될 수 있다.The following detailed description, which refers to the accompanying drawings, will serve to provide a comprehensive understanding of the various embodiments of the present disclosure, which are defined by the claims and the equivalents of the claims. The following detailed description includes various specific details for the sake of understanding, but will be considered as exemplary only. Accordingly, those skilled in the art will recognize that various changes and modifications of the various embodiments described herein may be made without departing from the scope and spirit of this disclosure. Furthermore, the descriptions of well-known functions and constructions may be omitted for clarity and conciseness.
하기의 상세한 설명 및 청구항들에서 사용되는 용어들 및 단어들은 문헌적 의미로 한정되는 것이 아니라, 단순히 발명자에 의한 본 개시의 명료하고 일관적인 이해를 가능하게 하도록 하기 위해 사용될 뿐이다. 따라서, 해당 기술 분야의 당업자들에게는 본 개시의 다양한 실시 예들에 대한 하기의 상세한 설명은 단지 예시 목적만을 위해 제공되는 것이며, 첨부되는 청구항들 및 상기 청구항들의 균등들에 의해 정의되는 본 개시를 한정하기 위해 제공되는 것은 아니라는 것이 명백해야만 할 것이다.The terms and words used in the following detailed description and in the claims are not intended to be limited to the literal sense, but merely to enable a clear and consistent understanding of the disclosure by the inventor. It is therefore to be understood by those skilled in the art that the following detailed description of various embodiments of the disclosure is provided for illustrative purposes only and is not intended to limit the present disclosure as defined by the appended claims and equivalents of the claims It should be clear that this is not provided for.
또한, 본 명세서에서 명백하게 다른 내용을 지시하지 않는 "한"과, "상기"와 같은 단수 표현들은 복수 표현들을 포함한다는 것이 이해될 수 있을 것이다. 따라서, 일 예로, "컴포넌트 표면(component surface)"은 하나 혹은 그 이상의 컴포넌트 표현들을 포함한다.Furthermore, it is to be understood that the singular forms "a" and "an" above, unless the context clearly dictates otherwise, include plural representations. Thus, in one example, a "component surface" includes one or more component representations.
또한, 제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 개시의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.Also, terms including ordinal numbers such as first, second, etc. may be used to describe various elements, but the elements are not limited to these terms. The terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present disclosure, the first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component. And / or < / RTI > includes any combination of a plurality of related listed items or any of a plurality of related listed items.
또한, 본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 개시를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Furthermore, the terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting on the present disclosure. The singular expressions include plural expressions unless the context clearly dictates otherwise. In this specification, the terms "comprises" or "having" and the like refer to the presence of stated features, integers, steps, operations, elements, components, or combinations thereof, But do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or combinations thereof.
또한, 별도로 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 이해되어야만 한다.Also, unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this disclosure belongs. Terms such as those defined in commonly used dictionaries should be understood to have a meaning consistent with the contextual meaning of the related art.
먼저, 본 개시의 실시 예는 인터넷을 구성하는 중요한 프로토콜 중의 하나인 TCP를 개선하여 통신 시스템 상에서 데이터 패킷의 처리율에 대한 성능을 저하시키지 않으면서 어플리케이션 간의 지연 시간을 최소화하기 위한 방법을 제공하기 위한 것이다.First, the embodiment of the present disclosure is intended to provide a method for improving the TCP, which is one of important protocols constituting the Internet, so as to minimize the delay time between the applications without degrading the performance of the data packet on the communication system .
이를 위하여 본 개시의 실시 예에서는 TCP의 데이터 패킷을 관리하는 전송 버퍼를 제어하는 방법 및 장치를 제공한다. 이하에서는 도면을 참조하여 통신 시스템에 포함된 각 장치에서 TCP의 전송 버퍼를 제어하는 방법에 대하여 상세하게 설명하기로 한다.To this end, embodiments of the present disclosure provide a method and apparatus for controlling a transport buffer for managing TCP data packets. Hereinafter, a method of controlling a TCP transmission buffer in each device included in a communication system will be described in detail with reference to the drawings.
도 1은 본 개시의 실시 예에 따른 통신 시스템의 일 예를 보이고 있다.1 shows an example of a communication system according to an embodiment of the present disclosure.
도 1을 참조하면, 통신 시스템은 전송 장치(110), 중계 장치(130) 및 수신 장치(150)를 포함한다.Referring to FIG. 1, a communication system includes a
도 1을 참조하면, 상기 전송 장치(110)는 데이터 패킷을 전송하는 무선 통신 장치이다. 그리고 상기 수신 장치(150)는 상기 전송 장치(110)와 무선으로 접속되어 전송 장치(110)로부터 데이터 패킷을 수신하는 무선 통신 장치이다. 또한 상기 중계 장치(130)는 동일한 전송 프로토콜을 사용하는 분리된 네트워크를 연결하는 장치로서, 상기 전송 장치(110)와 수신 장치(150)를 서로 연결하는 장치이다. 일 예로, 상기 중계 장치(130)는 프록시(proxy) 서버일 수 있다.Referring to FIG. 1, the
상기 전송 장치(110)는 어플리케이션 계층으로부터 수신된 데이터 패킷을 수신 장치(150)로 전송하기 위하여 전송 버퍼를 관리한다. 그리고 상기 전송 장치(110)는 혼잡 윈도우(congestion window)를 이용하여 전송 버퍼에 버퍼링된 데이터 패킷을 상기 수신 장치(150)로 전송한다. 이때, 본 개시의 실시 예에서는 전송 장치(110)에서 관리하는 전송 버퍼를 네트워크 상황에 따라 적응적으로 제어하여, 전송 장치(110)에서 데이터 패킷을 처리하는 처리율에 대한 성능을 저하시키지 않으면서 어플리케이션 간 지연 시간을 최소화하는 방안을 제안한다.The
본 개시의 실시 예에서 전송 장치(110)에서 관리하는 전송 버퍼를 네트워크 상황에 따라 적응적으로 제어하는 방법은, 전송 장치(110), 중계 장치(130) 및 수신 장치(150) 중 적어도 하나의 장치에 의해 수행될 수 있다.The method of adaptively controlling the transmission buffer managed by the
먼저, 도 2a 및 도 2b를 기반으로 본 개시의 실시 예에 따른 전송 버퍼를 제어하는 방법이 상기 전송 장치(110)에 의해 수행되는 경우에 대하여 설명하기로 한다.First, a description will be made of a case where the
도 2a 및 도 2b는 본 개시의 실시 예에 따른 통신 시스템에서 전송 장치(110)에 의해 전송 버퍼를 제어하는 방법을 보이고 있다. 이때, 본 개시의 실시 예에 따라 전송 장치(110)에서 전송 버퍼를 제어하는 경우, 상기 전송 버퍼는 전송 장치(110)에 포함되어 있으므로 상기 전송 장치(110)는 직접적으로 전송 버퍼의 크기를 제어할 수 있다.2A and 2B illustrate a method of controlling a transmission buffer by a
도 2a 및 도 2b를 참조하면, 상기 전송 장치(110)는 네트워크 환경을 확인하기 위하여, 현재의 RTT 값을 확인한다(201). 상기 현재의 RTT 값은 TCP에서 가장 최근에 측정된 RTT 값으로, 상기 현재의 RTT 값에 높은 가중치를 부여하여 나타낼 수 있다. 이와 같이 상기 현재의 RTT 값에 높은 가중치를 부여하여 나타내는 값은 스무스드 RTT(smoothed RTT) 값으로 칭해질 수 있다.Referring to FIGS. 2A and 2B, the
그리고 상기 전송 장치(110)는 상기 확인한 smoothed RTT 값이 현재까지 확인된 최소 RTT(RTTmin) 값보다 작은 값을 갖는지 판단하여(203), 상기 확인한 smoothed RTT 값이 RTTmin 값보다 작은 값을 갖는 경우 RTTmin 값을 상기 확인한 smoothed RTT 값으로 갱신한다(205). 반면, 상기 전송 장치(110)는 상기 확인한 smoothed RTT 값이 RTTmin 값보다 큰 값을 갖는 경우 RTTmin 값을 갱신하지 않고 단계 207로 진행한다.Then, the transmitting
이후, 상기 전송 장치(110)는 TCP의 현재 단계 및 smoothed RTT 값을 기반으로 전송 버퍼의 크기를 제어한다(207~215). 이때, TCP에 따른 혼잡 제어 방식에서 혼잡 상태에 따라 수행되는 단계들은 구분된 단계들은 슬로우 스타트(slow start) 단계 및 혼잡 회피(congestion avoidance) 단계를 포함한다. 잘 알려진 것처럼 상기 슬로우 스타트 단계는 혼잡 감지 시까지 송신 데이터량을 지수적으로 증가시키는(즉 혼잡 윈도우의 크기를 지수적으로 증가시키는) 단계이다. 상기 혼잡 회피 단계는 상기 혼잡 감지 후 송신 데이터량를 선형적으로 증가시키는(즉 혼합 윈도우의 크기를 선형적으로 증가시키는) 단계이다.Thereafter, the
상세하게 상기 전송 장치(110)는 TCP의 현재 단계가 슬로우 스타트 단계인지에 판단한다(207). 이때, 상기 전송 장치(110)는 TCP의 현재 단계가 슬로우 스타트 단계인지를 판단하는 방법으로, 종래 다양한 방법들 중 하나의 방법을 이용할 수 있다. 일 예로, 상기 전송 장치(110)는 수신 장치(150)로부터 3회 이상 중복적인 정상 응답 신호(TCP acknowledgement)를 수신하기 이전까지를 슬로우 스타트 단계로 판단할 수 있다.In detail, the transmitting
상기 전송 장치(110)는 TCP의 현재 단계가 슬로우 스타트 단계인 경우, 전송 버퍼의 크기를 혼잡 윈도우의 크기에 일정 상수를 곱한 값으로 설정한다(209).If the current step of the TCP is the slow start step, the
반면, 상기 전송 장치(110)는 TCP의 현재 단계가 슬로우 스타트 단계가 아닌 경우로 판단한 경우, TCP의 현재 단계가 혼잡 회피 단계임을 확인한다(211). 상기 전송 장치(110)는 TCP의 현재 단계가 혼잡 회피(congestion avoidance) 단계임을 확인한 경우, 도 3을 기반으로 전송 버퍼의 크기를 제어할 수 있다. 도 3은 본 개시의 실시 예에서 RTT 값에 따른 TCP의 전송 버퍼의 크기 변화의 일 예를 보이고 있다. 즉, 상기 전송 장치(110)는 상기 smoothed RTT 값과 RTTmin의 차이 값을 고려하여 전송 버퍼의 크기를 조정한다. 이때, 상기 smoothed RTT 값과 RTTmin의 차이 값은 네트워크 상황에 따라 결정되는 변수 값, 미리 정해진 상수 값 또는 미리 정해진 정수 값 중 하나의 값이 될 수 있다. On the other hand, when determining that the current step of TCP is not the slow start step, the transmitting
상세하게, 상기 전송 장치(110)는 상기 smoothed RTT 값이 RTTmin의 배보다 작은 경우(213), 도 3과 같이 전송 버퍼의 크기를 점차적으로(additive) 증가시킨다(215). 일 예로, 상기 전송 장치(110)는 상기 전송 버퍼의 크기를 1씩 증가시킬 수 있다. 그리고 상기 전송 장치(110)는 smoothed RTT 값이 와 사이에 있는 경우(217), 도 3과 같이 기존의 전송 버퍼의 크기를 유지시킨다(219). 또한 상기 전송 장치(110)는 smoothed RTT 값이 보다 큰 경우(221), 도 3과 같이 전송버퍼의 크기를 급격하게(multiplicative) 감소시킨다(223). 여기서, α는 β보다 작은 값을 가지며, 상기 및 는 네트워크 상황에 따라 결정되는 변수 값, 미리 정해진 상수 값 또는 미리 정해진 정수 값 중 하나의 값이 될 수 있다.In detail, the
이때, Smoothed RTT 값의 증가는 해당 플로우의 전송 경로 상의 버퍼량의 증가, 플로우 간 경쟁 심화, 패킷 손실률의 증가에 따른 지연 시간 증가 등의 결과로 볼 수 있다. 따라서 Smoothed RTT 값이 증가하는 네트워크 환경에서는 전송 버퍼의 크기를 줄임으로써 어플리케이션이 감지하는 지연 시간을 줄여줄 필요가 있다. 그리고 smoothed RTT 값의 감소는 해당 플로우의 전송 경로 상의 버퍼량의 감소, 플로우 간 경쟁 감소, 패킷 손실률의 감소에 따른 지연 시간 감소 등의 결과로 볼 수 있다. 따라서 Smoothed RTT 값이 감소하는 네트워크 환경에서는 전송 버퍼의 크기를 늘림으로써 TCP의 전송 기회 발생 시 최대한의 데이터 패킷을 전송하도록 할 필요가 있다. 또한 전송 버퍼의 크기를 늘릴 때에는 점차적인 증가를 통해 갑작스런 증가로 인한 어플리케이션 지연 시간의 급격한 증가를 방지하고, 전송 버퍼를 감소 시킬 때에는 급격한 감소를 통해 악화된 네트워크 상황에 신속하게 대응하도록 한다. At this time, the increase of the Smoothed RTT value can be seen as the increase of the buffer amount on the transmission path of the flow, the intense competition between the flows, and the increase of the delay time due to the increase of the packet loss rate. Therefore, in the network environment where the smoothed RTT value increases, it is necessary to reduce the delay time that the application detects by reducing the size of the transmission buffer. The reduction of the smoothed RTT value can be seen as the reduction of the buffer amount on the transmission path of the flow, the reduction of the competition between the flows, and the reduction of the delay time due to the decrease of the packet loss rate. Therefore, in the network environment where the smoothed RTT value decreases, it is necessary to increase the size of the transmission buffer so as to transmit the maximum data packet when the TCP transmission opportunity occurs. In addition, when the size of the transmission buffer is increased, a sudden increase causes an abrupt increase in the application latency, thereby preventing a rapid increase in the application latency. In the case of reducing the transmission buffer, the transmission buffer is rapidly reduced to quickly respond to deteriorated network conditions.
상기에서는 도 2a 및 도 2b를 참조하여, 전송 장치(110)에 의해 전송 버퍼의 크기를 직접적으로 제어하는 방법에 대하여 설명하였으며, 하기에서는 도 4를 기반으로 본 개시의 실시 예에 따른 전송 버퍼를 제어하는 방법이 수신 장치(150)에 의해 수행되는 경우에 대하여 설명하기로 한다.In the above, a method of directly controlling the size of a transmission buffer by the
도 4는 본 개시의 실시 예에 따른 통신 시스템에서 수신 장치(150)에 의해 전송 버퍼를 제어하는 방법을 보이고 있다. 이때, 본 개시의 실시 예에 따라 수신 장치(130)에서 전송 버퍼를 제어하는 경우, 상기 전송 버퍼는 전송 장치(110)에 포함되어 있으므로 상기 수신 장치(150)는 간접적으로 전송 버퍼를 제어할 수 있다.FIG. 4 illustrates a method of controlling a transmit buffer by a receiving
도 4를 참조하면, 수신 장치(150)는 송신 장치(110)로 정상 응답 신호를 전송하는 경우의 RTT를 기반으로, TCP의 현재 단계를 예측한다(401). Referring to FIG. 4, the receiving
상기 TCP의 현재 단계를 예측하는 방법은, 일 예로 상기 수신 장치(150)가 송신 장치(110)로 정상 응답 신호를 전송한 경우, 상기 송신 장치(110)로부터 수신되는 패킷 트레인(packet train)의 길이가 단방향 지연 시간(일 예로, 최소 RTT 값의 절반 값)보다 큰 지를 확인한다. 여기서, 상기 패킷 트레인은 수신 장치(150)가 송신 장치(110)로부터 하나의 라운드(round)에서 수신하는 복수개의 데이터 패킷들의 묶음을 의미한다. 그리고 상기 수신 장치(150)는 상기 패킷 트레인 길이가 단방향 지연 시간보다 작거나 같으면 전송 장치(110)의 TCP가 슬로우 스타트 단계임으로 예측하고, 상기 패킷 트레인 길이가 단방향 지연 시간보다 크면 전송 장치(110)의 TCP가 혼잡 회피 단계임으로 예측한다. 이때, 상기 수신 장치(150)는 마지막으로 정상 응답 신호를 전송한 시점과 현재 시점 사이의 시간 간격이 일정 값보다 크면 새로운 라운드(즉, 새로운 패킷 트레인)으로 판단한다. 수신 장치(150)는 전송 장치(110)와 달리 정확히 패킷 트레인의 변경을 알 수 없기 때문에 이와 같은 방법을 사용한다.The method of predicting the current TCP state is a method of estimating the current state of the TCP in a case where the receiving
상기 TCP의 현재 단계를 예측하는 방법은, 다른 예로 상기 수신 장치(150)는 새로운 패킷 트레인을 수신할 때마다, 패킷 트레인의 처음 미리 정해진 개수의 정상 응답 신호들을 이용하여 RTT 값을 계산한다. 그리고 상기 수신 장치(150)는 k 번째 패킷 트레인에서 계산된 RTT 값이 k-1번째 패킷 트레인에서 계산된 RTT 값에 일정 상수를 더한 값보다 크면, 대역폭 지연 시간 프로덕트(bandwidth delay product : BDP)에 도달하여 전송 장치(110)의 TCP가 혼잡 회피 단계임으로 예측한다. 여기서, 상기 BDP는 대역폭과 지연 시간의 곱으로, 특정 경로를 통해 전송할 수 있는 데이터 패킷의 양의 최대 값을 나타낸다.As another example, the receiving
반면, 상기 상기 수신 장치(150)는 k 번째 패킷 트레인에서 계산된 RTT 값이 k-1번째 패킷 트레인에서 계산된 RTT 값에 일정 상수를 더한 값보다 작으면 전송 장치(110)의 TCP가 슬로우 스타트임으로 예측한다. 한편, 상기 수신 장치(150)는 k 번째 패킷 트레인에서 계산된 RTT 값이 k-1번째 패킷 트레인에서 계산된 RTT 값에 일정 상수를 더한 값과 같은 경우, 내부 설정에 따라서 전송 장치(110)의 TCP가 혼잡 회피 단계 또는 슬로우 스타트 단계임으로 예측할 수 있다.On the other hand, if the RTT value calculated in the k-th packet train is smaller than the RTT value calculated in the (k-1) -th packet train plus a certain constant, the receiving
다음으로, 상기 수신 장치(150)는 TCP의 데이터 패킷이 수신될 때마다, 수신된 데이터 패킷의 길이를 알려진(advertise) MSS(maximum segment size)로 나눈 값을 더하여 전송 장치(110)에서 결정된 혼잡 윈도우의 크기를 예측한다(403).Next, the receiving
그리고 수신 장치(150)는 새로운 패킷 트레인이 수신될 때마다, 현재의 RTT(smoothed RTT) 값을 확인한다(405). 상기 수신 장치(150)는 상기 확인한 smoothed RTT 값이 현재까지 확인된 최소 RTT(RTTmin) 값보다 작은 값을 갖는지 판단하여(407), 상기 확인한 smoothed RTT 값이 RTTmin 값보다 작은 값을 갖는 경우 RTTmin 값을 상기 확인한 smoothed RTT 값으로 갱신한다(409). 반면, 상기 수신 장치(150)는 상기 확인한 smoothed RTT 값이 RTTmin 값보다 큰 값을 갖는 경우 RTTmin 값을 갱신하지 않고 단계 411로 진행한다.Then, the receiving
상기 수신 장치(150)는 상기 예측된 TCP의 현재 단계(즉, 슬로우 스타트 단계 또는 혼잡 회피 단계), 상기 예측된 혼잡 윈도우의 크기, 상기 확인한 smoothed RTT 값 및 RTTmin 값을 기반으로, 송신 장치(110)로 전송할(advertisement) 윈도우의 크기를 결정한다. 이때, 상기 수신 장치(150)는 상기 송신 장치(110)에서 전송 버퍼의 크기를 결정하는 방법과 유사한 방법으로 advertisement 윈도우의 크기를 결정할 수 있다. 즉, 상기 수신 장치(150)는 상기 예측된 TCP의 현재 단계가 슬로우 스타트 단계인 경우, 상기 예측된 혼잡 윈도우의 크기에 일정 상수를 곱하여 advertisement 윈도우의 크기를 결정한다. 그리고 상기 수신 장치(150)는 상기 예측된 TCP의 현재 단계가 혼잡 회피 단계인 경우, 도 2의 단계 211 내지 223과 동일한 방법으로, 도 3을 기반으로 상기 예측된 혼잡 윈도우의 크기, 상기 확인한 smoothed RTT 값 및 RTTmin 값을 이용하여 advertisement 윈도우의 크기를 결정할 수 있다.The receiving
그리고 상기 수신 장치(150)는 상기 결정된 advertisement 윈도우의 크기에 미리 정해진 윈도우 스케일(scale)을 적용하여 최종 advertisement 윈도우의 크기를 결정한다(413). 따라서 상기 수신 장치(150)는 패킷 헤더의 advertisement 윈도우 필드에 상기 최종 advertisement 윈도우의 크기를 삽입하여 상기 송신 장치(110)로 전송한다(415).Then, the receiving
이로부터 상기 수신 장치(150)는 전송 버퍼로부터 출력되는 윈도우의 크기를 결정하여 간접적으로 전송 버퍼를 제어할 수 있다.The receiving
상기에서는 도 4를 기반으로 상기 수신 장치(150)에 의해 전송 버퍼를 간접적으로 제어하는 방법에 대하여 설명하였으며, 이하에서는 도 5를 기반으로 본 개시의 실시 예에 따른 전송 버퍼를 제어하는 방법이 중계 장치(130)에 의해 수행되는 경우에 대하여 설명하기로 한다. 본 개시의 실시 예에 따른 통신 시스템에서는 송신 장치(110) 및 수신 장치(150)의 내부 구성 및 동작을 변경하지 않고, 중계 장치(130)에 의해 전송 버퍼를 제어할 수 있다In the above description, a method of indirectly controlling a transmission buffer by the receiving
도 5는 본 개시의 실시 예에 따른 통신 시스템에서 중계 장치(130)에 의해 전송 버퍼를 제어하는 방법을 보이고 있다. 5 illustrates a method of controlling a transmission buffer by a
도 5를 참조하면, 중계 장치(130)는 전송 장치(110)와 통신을 수행하는 경우 수신 장치로 동작하고, 수신 장치(150)와 통신을 수행하는 경우 송신 장치로 동작할 수 있다. 따라서, 상기 중계 장치(130)는 전송 장치(110)와 통신을 수행하는 경우 도 4와 같이 수신 장치(150)와 동일한 방법(즉, 제1 전송 버퍼 제어 프로토콜, 531)으로 간접적으로 전송 장치(110)에 포함된 전송 버퍼(501)를 제어한다. 그리고 중계 장치(130)는 수신 장치(150)와 통신을 수행하는 경우 도 2a 및 도 2b와 같이 전송 장치(110)와 동일한 방법(즉, 제2 전송 버퍼 제어 프로토콜, 533)으로 직접적으로 중계 장치(130)에 포함된 전송 버퍼(503)를 제어한다. 이때, 상기 중계 장치(130)는 제1 전송 버퍼 제어 프로토콜과 제2 전송 버퍼 제어 프로토콜을 모두 수행함에 따라, 이에 필요한 추가적인 동작을 수행할 수도 있다. 상기 추가적인 동작의 예로는 중계 장치(130)의 내부에서 제1 전송 버퍼 제어 프로토콜에 의해 관리되는 수신 버퍼와 제2 전송 버퍼 제어 프로토콜에 의해 관리되는 송신 버퍼 간의 패킷 전달에서 오버플로우(overflow)로 인한 패킷 손실을 방지하기 위한 내부 버퍼를 제어하는 동작 등이 있다.Referring to FIG. 5, the
따라서, 본 개시의 실시 예는 전송 장치(110)에 포함된 전송 버퍼(501) 또는 중계 장치(130)에 포함된 전송 버퍼(503)를 네트워크 상황에 따라 적응적으로 제어하여 데이터 패킷에 대한 처리율 성능을 저하시키지 않으면서 어플리케이션 간 지연 시간을 최소화할 수 있다. 그리고 상기 본 개시의 실시 예에서 어플리케이션 간 지연 시간을 최소화할 수 있음은 지연 시간이 중요한 다양한 어플리케이션의 서비스 품질을 향상시키는데 활용될 수 있다. 또한 본 개시의 실시 예는 전송 장치(110), 수신 장치(130) 및 중계 장치(150) 중 하나의 장치에 의해 수행될 수 있으므로, 다양한 통신 시스템의 환경에서 적용될 수 있다.The embodiment of the present disclosure can adaptively control the
상기에서는 도 5를 기반으로 상기 중계 장치(130)에 의해 전송 버퍼를 직접적 및 간접적으로 제어하는 방법에 대하여 설명하였으며, 이하에서는 도 6 내지 도 8을 기반으로 본 개시의 실시 예를 수행하는 송신 장치(110), 수신 장치(150) 및 중계 장치(130) 각각의 내부 구성을 간략히 설명하기로 한다.In the above description, a method of directly or indirectly controlling the transmission buffer by the
도 6은 본 개시의 실시 예에 따른 통신 시스템에서 TCP의 전송 버퍼를 제어하는 전송 장치(110)의 내부 구성을 보이고 있다.6 shows an internal configuration of a
도 6을 참조하면, 전송 장치(110)는, 제어부(601), 송신부(603), 수신부(605) 및 저장부(607)를 포함한다.6, the
상기 제어부(601)는 전송 장치(110)의 전반적인 동작을 제어하며, 특히 본 개시의 실시 예들에 따른 TCP의 전송 버퍼를 제어하는 동작에 관련된 동작을 제어한다. 본 개시의 실시 예에 따른 TCP의 전송 버퍼를 제어하는 동작에 관련된 동작은 상기 도 1 내지 도 3에서 설명한 바와 동일하므로 여기서 그 상세한 설명을 생략하기로 한다. 그리고 상기 제어부(601)는 상기 도 1 내지 도 3 각각에서 설명한 본 개시의 실시 예에 따른 TCP의 전송 버퍼를 제어하는 동작을 각각 또는 적어도 둘 이상의 실시 예들을 조합하여 TCP의 전송 버퍼를 제어할 수 있다. The
상기 송신부(603)는 상기 제어부(601)의 제어에 따라 통신 시스템에 포함되는 다른 엔터티들로부터 각종 신호 및 각종 메시지들을 수신한다. 여기서, 상기 송신부(603)가 수신하는 각종 신호 및 각종 메시지들은 상기 도 2a 및 도 2b에서 설명한 바와 동일하므로 여기서 그 상세한 설명을 생략하기로 한다.The
또한 상기 수신부(605)는 제어부(601)의 제어에 따라 통신 시스템에 포함되는 다른 엔터티들로부터 각종 신호 및 각종 메시지들을 수신한다. 여기서, 상기 수신부(605)가 수신하는 각종 신호 및 각종 메시지들은 상기 도 2a 및 도 2b에서 설명한 바와 동일하므로 여기서는 그 상세한 설명을 생략하기로 한다. The receiving
상기 저장부(607)는 상기 제어기(601)의 제어에 따라 상기 송신 장치(110)가 수행하는 본 개시의 실시 예에 따른 TCP의 전송 버퍼를 제어하는 동작에 관련된 동작과 관련된 프로그램과 각종 데이터 패킷 등을 저장한다. 또한, 상기 저장부(607)는 상기 수신부(605)가 상기 다른 엔터티들로부터 수신한 각종 신호 및 각종 메시지들을 저장한다. The
한편, 도 6에는 상기 송신 장치(110)가 상기 제어부(601), 송신부(603), 수신부(605) 및 저장부(607)와 같이 별도의 유닛들로 구현된 경우가 도시되어 있으나, 상기 송신 장치(110)는 상기 제어부(601), 송신부(603), 수신부(605) 및 저장부(607) 중 적어도 두 개가 통합된 형태로 구현 가능함은 물론이다. 또한, 상기 송신 장치(110)는 1개의 프로세서로 구현될 수도 있음은 물론이다.6 shows a case where the
도 7은 본 개시의 실시 예에 따른 통신 시스템에서 TCP의 전송 버퍼를 제어하는 수신 장치(150)의 내부 구성을 보이고 있다.7 illustrates an internal configuration of a receiving
도 7을 참조하면, 수신 장치(150)는, 제어부(701), 송신부(703), 수신부(705) 및 저장부(707)를 포함한다.7, the receiving
상기 제어부(701)는 수신 장치(150)의 전반적인 동작을 제어하며, 특히 본 개시의 실시 예들에 따른 TCP의 전송 버퍼를 제어하는 동작에 관련된 동작을 제어한다. 본 개시의 실시 예에 따른 TCP의 전송 버퍼를 제어하는 동작에 관련된 동작은 상기 도 4에서 설명한 바와 동일하므로 여기서 그 상세한 설명을 생략하기로 한다.The
상기 송신부(703)은 상기 제어부(701)의 제어에 따라 통신 시스템에 포함되는 다른 엔터티들로부터 각종 신호 및 각종 메시지들을 수신한다. 여기서, 상기 송신부(703)가 수신하는 각종 신호 및 각종 메시지들은 상기 도 1, 도 3 및 도 4에서 설명한 바와 동일하므로 여기서 그 상세한 설명을 생략하기로 한다. 그리고 상기 제어부(601)는 상기 도 1, 도 3 및 도 4 각각에서 설명한 본 개시의 실시 예에 따른 TCP의 전송 버퍼를 제어하는 동작을 각각 또는 적어도 둘 이상의 실시 예들을 조합하여 TCP의 전송 버퍼를 제어할 수 있다.The
또한 상기 수신부(705)는 제어부(701)의 제어에 따라 통신 시스템에 포함되는 다른 엔터티들로부터 각종 신호 및 각종 메시지들을 수신한다. 여기서, 상기 수신부(705)가 수신하는 각종 신호 및 각종 메시지들은 상기 도 4에서 설명한 바와 동일하므로 여기서는 그 상세한 설명을 생략하기로 한다. The receiving
상기 저장부(707)는 상기 제어기(701)의 제어에 따라 상기 수신 장치(150)가 수행하는 본 개시의 실시 예에 따른 TCP의 전송 버퍼를 제어하는 동작에 관련된 동작과 관련된 프로그램과 각종 데이터 패킷 등을 저장한다. 또한, 상기 저장부(707)는 상기 수신부(705)가 상기 다른 엔터티들로부터 수신한 각종 신호 및 각종 메시지들을 저장한다. The
한편, 도 7에는 상기 수신 장치(150)가 상기 제어부(701), 송신부(703), 수신부(705) 및 저장부(707)와 같이 별도의 유닛들로 구현된 경우가 도시되어 있으나, 상기 수신 장치(150)는 상기 제어부(701), 송신부(703), 수신부(705) 및 저장부(707) 중 적어도 두 개가 통합된 형태로 구현 가능함은 물론이다. 또한, 상기 수신 장치(10)는 1개의 프로세서로 구현될 수도 있음은 물론이다.7 shows a case where the receiving
도 8은 본 개시의 실시 예에 따른 통신 시스템에서 TCP의 전송 버퍼를 제어하는 중계 장치(130)의 내부 구성을 보이고 있다.8 shows an internal configuration of a
도 8을 참조하면, 중계 장치(130)는, 제어부(801), 송신부(803), 수신부(805) 및 저장부(807)를 포함한다.8, the
상기 제어부(801)는 중계 장치(130)의 전반적인 동작을 제어하며, 특히 본 개시의 실시 예들에 따른 TCP의 전송 버퍼를 제어하는 동작에 관련된 동작을 제어한다. 본 개시의 실시 예에 따른 TCP의 전송 버퍼를 제어하는 동작에 관련된 동작은 상기 1 내지 도 5에서 설명한 바와 동일하므로 여기서 그 상세한 설명을 생략하기로 한다. 상기 제어부(601)는 상기 도 1 내지 도 5 각각에서 설명한 본 개시의 실시 예에 따른 TCP의 전송 버퍼를 제어하는 동작을 각각 또는 적어도 둘 이상의 실시 예들을 조합하여 TCP의 전송 버퍼를 제어할 수 있다.The
상기 송신부(803)은 상기 제어부(801)의 제어에 따라 통신 시스템에 포함되는 다른 엔터티들로부터 각종 신호 및 각종 메시지들을 수신한다. 여기서, 상기 송신부(803)가 수신하는 각종 신호 및 각종 메시지들은 상기 도 2a 및 도 2b 및 도 4에서 설명한 바와 동일하므로 여기서 그 상세한 설명을 생략하기로 한다.Under the control of the
또한 상기 수신부(805)는 제어부(801)의 제어에 따라 통신 시스템에 포함되는 다른 엔터티들로부터 각종 신호 및 각종 메시지들을 수신한다. 여기서, 상기 수신부(805)가 수신하는 각종 신호 및 각종 메시지들은 상기 도 2a 및 도 2b 및 도 4에서 설명한 바와 동일하므로 여기서는 그 상세한 설명을 생략하기로 한다. The receiving
상기 저장부(807)는 상기 제어기(801)의 제어에 따라 상기 중계 장치(130)가 수행하는 본 개시의 실시 예에 따른 TCP의 전송 버퍼를 제어하는 동작에 관련된 동작과 관련된 프로그램과 각종 데이터 패킷 등을 저장한다. 또한, 상기 저장부(807)는 상기 수신부(805)가 상기 다른 엔터티들로부터 수신한 각종 신호 및 각종 메시지들을 저장한다. The
한편, 도 8에는 상기 중계 장치(130)가 상기 제어부(801), 송신부(803), 수신부(805) 및 저장부(807)와 같이 별도의 유닛들로 구현된 경우가 도시되어 있으나, 상기 중계 장치(130)는 상기 제어부(801), 송신부(803), 수신부(805) 및 저장부(807) 중 적어도 두 개가 통합된 형태로 구현 가능함은 물론이다. 또한, 상기 중계 장치(130)는 1개의 프로세서로 구현될 수도 있음은 물론이다.8 shows a case in which the
상기에서는 도 6 내지 도 8을 기반으로 본 개시의 실시 예를 수행하는 송신 장치(110), 수신 장치(150) 및 중계 장치(130) 각각의 내부 구성에 대하여 설명하였으며, 하기에서는 도 9 내지 도 11을 기반으로 실제 통신 시스템에서 본 개시의 실시 예예 따라 통신 시스템에서 TCP의 송신 버퍼를 제어하는 방법을 적용한 결과에 대하여 설명하기로 한다.In the above description, the internal configuration of each of the transmitting
도 9는 현재 통신 시스템의 TCP에서 지연 시간이 발생되는 장치를 확인한 결과를 보이고 있다.FIG. 9 shows a result of checking a device in which the delay time is generated in the TCP of the current communication system.
도 9를 참조하면, (a)는 큐빅(cubic)에서 지연 시간이 발생되는 장치를 확인한 결과이고, (b)는 리노(reno)에서 지연 시간이 발생되는 장치를 확인한 결과이다. 도 9의 (a) 및 (b)에서는 모두 대부분의 지연 시간이 전송 장치(110)의 TCP 전송 버퍼에서 발생함을 확인할 수 있다. 그리고 도 9의 (a)에서와 같이, 큐빅의 경우 중계 장치(130)(일 예로, 프록시)의 TCP 전송 버퍼에서도 큰 지연 시간이 발생함을 확인할 수 있다. 이러한 통신 환경에서 송신 장치(110), 중계 장치(130) 및 수신 장치(150) 각각에 본 개시의 실시 예에 따른 TCP의 전송 버퍼를 제어하는 방법을 적용하면, 도 10 및 도 11과 같이 TCP에서의 지연 시간 및 처리율 성능을 최대화할 수 있다.Referring to FIG. 9, (a) shows a result of checking a device in which a delay time occurs in a cubic, and (b) shows a result of checking a device in which a delay time occurs in a reno. 9 (a) and 9 (b), it can be seen that most of the delay time occurs in the TCP transmission buffer of the
도 10은 통신 시스템에서 송신 장치(110) 및 수신 장치(150)에 본 개시의 실시 예에 따른 TCP의 전송 버퍼를 제어하는 방법을 적용한 결과를 보이고 있다. 여기서, 도 10의 결과는 실제로 현재 통신 사업자에 의해 운용되고 있는 이동통신 네트워크들 중 한 네트워크에서 실제로 측정한 것이다.FIG. 10 shows a result of applying the method of controlling the transmission buffer of the TCP according to the embodiment of the present disclosure to the
도 10을 참조하면, (a)는 기존 큐빅에서의 지연 시간, 전송 장치(110)에서 본 개시의 실시 예에 따른 TCP의 전송 버퍼를 제어하는 방법을 적용한 결과의 지연 시간 및 수신 장치(150)에서 본 개시의 실시 예에 따른 TCP의 전송 버퍼를 제어하는 방법을 적용한 결과의 지연 시간을 비교한 것이다. 도 10의 (a)에서는 기존 큐빅에서의 지연 시간에 비하여, 전송 장치(110)에서 본 개시의 실시 예에 따른 TCP의 전송 버퍼를 제어하는 방법을 적용한 결과의 지연 시간 및 수신 장치(150)에서 본 개시의 실시 예에 따른 TCP의 전송 버퍼를 제어하는 방법을 적용한 결과의 지연 시간이 확연히 감소하였음을 확인할 수 있다.Referring to FIG. 10, (a) shows a delay time in conventional cubic, a delay time resulting from applying a method of controlling a transmission buffer of TCP according to an embodiment of the present disclosure in
그리고 (b)는 기존 큐빅에서의 평균 처리율, 전송 장치(110)에서 본 개시의 실시 예에 따른 TCP의 전송 버퍼를 제어하는 방법을 적용한 결과의 평균 처리율 및 수신 장치(150)에서 본 개시의 실시 예에 따른 TCP의 전송 버퍼를 제어하는 방법을 적용한 결과의 평균 처리율을 비교한 것이다. 도 10의 (a)에서는 기존 큐빅에서의 평균 처리율과, 전송 장치(110)에서 본 개시의 실시 예에 따른 TCP의 전송 버퍼를 제어하는 방법을 적용한 결과의 평균 처리율 및 수신 장치(150)에서 본 개시의 실시 예에 따른 TCP의 전송 버퍼를 제어하는 방법을 적용한 결과의 평균 처리율이 거의 유사함을 확인할 수 있다.(B) shows the average throughput at the existing cubic, the average throughput of the method of controlling the transmission buffer of the TCP according to the embodiment of the present invention in the
이로부터, 본 개시의 실시 예에 따른 전송 장치(110)에서 TCP의 전송 버퍼를 제어하는 방법 및 본 개시의 실시 예에 따른 수신 장치(150)에서 TCP의 전송 버퍼를 제어하는 방법 중 하나의 방법을 이용하면, 통신 시스템에서 기존 TCP에 비하여 지연 시간을 최소화하고 평균 처리율을 유지시킬 수 있다.From this, a method of controlling the transmission buffer of the TCP in the
도 11은 통신 시스템에서 송신 장치(110), 중계 장치(130) 및 수신 장치(150)에 본 개시의 실시 예에 따른 TCP의 전송 버퍼를 제어하는 방법을 적용한 결과를 보이고 있다. 여기서, 도 11의 결과는 실제로 한국의 이동통신망 중 하나인 SK 텔레콤 네트워크에서 측정한 것이다.11 shows a result of applying the method of controlling the transmission buffer of the TCP according to the embodiment of the present disclosure to the
도 11을 참조하면, (a)는 기존 큐빅에서의 지연 시간, 중계 장치(130)에서 본 개시의 실시 예에 따른 TCP의 전송 버퍼를 제어하는 방법을 적용한 결과의 지연 시간, 전송 장치(110)에서 본 개시의 실시 예에 따른 TCP의 전송 버퍼를 제어하는 방법을 적용한 결과의 지연 시간 및 수신 장치(150)에서 본 개시의 실시 예에 따른 TCP의 전송 버퍼를 제어하는 방법을 적용한 결과의 지연 시간을 비교한 것이다. 도 11의 (a)에서는 기존 큐빅에서의 지연 시간에 비하여, 중계 장치(130)에서 본 개시의 실시 예에 따른 TCP의 전송 버퍼를 제어하는 방법을 적용한 결과의 지연 시간, 전송 장치(110)에서 본 개시의 실시 예에 따른 TCP의 전송 버퍼를 제어하는 방법을 적용한 결과의 지연 시간 및 수신 장치(150)에서 본 개시의 실시 예에 따른 TCP의 전송 버퍼를 제어하는 방법을 적용한 결과의 지연 시간이 확연히 감소하였음을 확인할 수 있다.Referring to FIG. 11, (a) shows a delay time in conventional cubic, a delay time of a result of applying a method of controlling a transmission buffer of TCP according to an embodiment of the present disclosure in the
그리고 (b)는 기존 큐빅에서의 평균 처리율, 중계 장치(130)에서 본 개시의 실시 예에 따른 TCP의 전송 버퍼를 제어하는 방법을 적용한 결과의 평균 처리율, 전송 장치(110)에서 본 개시의 실시 예에 따른 TCP의 전송 버퍼를 제어하는 방법을 적용한 결과의 평균 처리율 및 수신 장치(150)에서 본 개시의 실시 예에 따른 TCP의 전송 버퍼를 제어하는 방법을 적용한 결과의 평균 처리율을 비교한 것이다. 도 10의 (a)에서는 기존 큐빅에서의 평균 처리율과, 중계 장치(130)에서 본 개시의 실시 예에 따른 TCP의 전송 버퍼를 제어하는 방법을 적용한 결과의 평균 처리율, 전송 장치(110)에서 본 개시의 실시 예에 따른 TCP의 전송 버퍼를 제어하는 방법을 적용한 결과의 평균 처리율 및 수신 장치(150)에서 본 개시의 실시 예에 따른 TCP의 전송 버퍼를 제어하는 방법을 적용한 결과의 평균 처리율이 거의 유사함을 확인할 수 있다.(B) shows the average throughput in the existing cubic, the average throughput of the result of applying the method of controlling the transmission buffer of the TCP according to the embodiment of the present disclosure in the
이로부터, 본 개시의 실시 예에 따른 전송 장치(110)에서 TCP의 전송 버퍼를 제어하는 방법, 중계 장치(130)에서 TCP의 전송 버퍼를 제어하는 방법 및 본 개시의 실시 예에 따른 수신 장치(150)에서 TCP의 전송 버퍼를 제어하는 방법 중 하나의 방법을 이용하면, 통신 시스템에서 기존 TCP에 비하여 지연 시간을 최소화하고 평균 처리율을 유지시킬 수 있다.A method for controlling the transmission buffer of the TCP in the
한편 본 개시의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 개시의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 개시의 범위는 설명된 실시 예에 국한되어 정해져서는 안되며 후술하는 특허 청구의 범위뿐만 아니라 이 특허 청구의 범위와 균등한 것들에 의해 정해져야 한다.While the invention has been described in connection with what is presently considered to be the most practical and preferred embodiment, it is to be understood that the invention is not limited to the disclosed embodiments. Therefore, the scope of the present disclosure should not be limited to the embodiments described, but should be determined by the scope of the appended claims, as well as the appended claims.
Claims (26)
상기 TCP에서 현재 라운드 트립 타임(round trip time : RTT) 값 및 최소 RTT 값을 확인하는 과정; 및
상기 TCP에 따른 혼잡 제어 방식에서 현재 단계, 상기 현재 RTT 값 및 상기 최소 RTT 값 중 적어도 하나를 기반으로 전송 버퍼의 크기를 조정하는 과정을 포함하는 TCP의 전송 버퍼 제어 방법.
A method of controlling a transport buffer of a transport control protocol (TCP) in a communication system,
Checking a current round trip time (RTT) value and a minimum RTT value in the TCP; And
And adjusting a size of a transmission buffer based on at least one of the current step, the current RTT value, and the minimum RTT value in the congestion control scheme according to the TCP.
상기 현재 단계가 슬로우 스타트(slow start) 단계이면, 혼잡 윈도우의 크기에 일정 상수를 곱하여 상기 전송 버퍼의 크기를 조정하는 과정임을 특징으로 하는 TCP의 전송 버퍼 제어 방법.
2. The method of claim 1, wherein the step of adjusting the size of the transmission buffer comprises:
And adjusting the size of the transmission buffer by multiplying the size of the congestion window by a constant if the current step is a slow start step.
상기 현재 단계가 혼잡 회피(congestion avoidance) 단계이면, 상기 현재 RTT 값과 상기 최소 RTT 값의 차이 값에 따라 상기 전송 버퍼의 크기를 조정하는 과정임을 특징으로 하는 TCP의 전송 버퍼 제어 방법.
2. The method of claim 1, wherein the step of adjusting the size of the transmission buffer comprises:
And adjusting the size of the transmission buffer according to a difference between the current RTT value and the minimum RTT value if the current step is a congestion avoidance step.
상기 현재 RTT 값이 제1 임계 값보다 작은 경우, 상기 전송 버퍼의 크기를 일정 상수만큼(additive) 증가시키는 과정;
상기 현재 RTT 값이 제1 임계 값과 제2 임계 값의 사이 값인 경우, 상기 전송 버퍼의 크기를 유지시키는 과정; 및
상기 현재 RTT 값이 상기 제2 임계 값보다 큰 경우, 전송 버퍼의 크기를 배수(multiplicative)로 감소시키는 과정을 포함하는 TCP의 전송 버퍼 제어 방법.
4. The method of claim 3, wherein the step of adjusting the size of the transmission buffer comprises:
Increasing the size of the transmission buffer by a predetermined number when the current RTT value is smaller than a first threshold value;
Maintaining a size of the transmission buffer when the current RTT value is a value between a first threshold value and a second threshold value; And
And decreasing the transmission buffer size to a multiplicative value when the current RTT value is greater than the second threshold value.
5. The method of claim 4, wherein the first threshold value and the second threshold value are determined based on the RTT minimum value, and the second threshold value is larger than the first threshold value. Control method.
상대 장치로 정상 응답 신호(TCP acknowledgement)를 전송하는 경우의 라운드 트립 타임(round trip time : RTT) 값을 기반으로 상기 TCP에 따른 혼잡 제어 방식에서 현재 단계를 예측하는 과정;
상기 상대 장치로부터 수신된 데이터 패킷을 기반으로 혼잡 윈도우의 크기를 예측하는 과정;
상기 TCP에서 현재 RTT 값 및 최소 RTT 값을 확인하는 과정; 및
상기 현재 단계, 상기 혼잡 윈도우의 크기, 상기 현재 RTT 값 및 상기 최소 RTT 값 중 적어도 하나를 기반으로 상기 상대 장치로 전송할 윈도우의 크기를 조정하는 과정을 포함하는 TCP의 전송 버퍼 제어 방법.
A method of controlling a transport buffer of a transport control protocol (TCP) in a communication system,
Predicting a current step in a congestion control scheme according to the TCP based on a round trip time (RTT) value when transmitting a normal acknowledgment signal to the counterpart device;
Estimating a size of a congestion window based on a data packet received from the counterpart device;
Checking a current RTT value and a minimum RTT value in the TCP; And
Adjusting a size of a window to be transmitted to the counterpart device based on at least one of the current step, the congestion window size, the current RTT value, and the minimum RTT value.
상기 상대 장치로 상기 정상 응답 신호를 전송하는 경우, 상기 상대 장치로부터 하나의 라운드(round)에서 수신된 패킷 트레인의 길이와 상기 최소 RTT 값의 절반 값의 비교 결과에 따라 상기 현재 단계를 예측하는 과정임을 특징으로 하는 TCP의 전송 버퍼 제어 방법.
7. The method of claim 6, wherein the step of predicting the current step comprises:
Predicting the current step according to a result of comparing the length of a packet train received in one round from the counterpart and a half value of the minimum RTT value when the normal response signal is transmitted to the counterpart device The transmission buffer control method of the TCP.
상기 상대 장치로부터 하나의 라운드(round)에서 수신된 데이터 패킷에 포함된 소정 개수의 정상 응답 신호들을 이용하여 계산된 RTT 값과, 상기 라운드의 이전 라운드에서 계산된 RTT 값의 차이 값에 따라 상기 현재 단계를 예측하는 과정임을 특징으로 하는 TCP의 전송 버퍼 제어 방법.
7. The method of claim 6, wherein the step of predicting the current step comprises:
The RTT value calculated using the predetermined number of normal response signals included in the data packet received in one round from the counterpart device and the RTT value calculated in the previous round of the round, Wherein the step of estimating the transmission buffer comprises the steps of:
상기 상대 장치로부터 수신된 데이터 패킷의 총 바이트 크기를 미리 알려진 최대 세그먼트 사이즈(maximum segment size)로 나눈 값을 이용하여 상기 상대 장치에서 결정된 혼잡 윈도우의 크기를 예측하는 과정이며,
상기 혼잡 윈도우의 크기는 패킷 개수의 단위임을 특징으로 하는 TCP의 전송 버퍼 제어 방법.
7. The method of claim 6, wherein the step of estimating the size of the congestion window comprises:
Estimating a size of the congestion window determined by the counterpart apparatus using a value obtained by dividing a total byte size of a data packet received from the counterpart apparatus by a maximum segment size,
Wherein the size of the congestion window is a unit of the number of packets.
상기 현재 단계가 슬로우 스타트(slow start) 단계이면, 혼잡 윈도우의 크기에 일정 상수를 곱하여 상기 상대 장치로 전송할 윈도우의 크기를 결정하는 과정을 포함함을 특징으로 하는 TCP의 전송 버퍼 제어 방법.
The method as claimed in claim 6, wherein the step of adjusting the window size to be transmitted to the counterpart apparatus comprises:
And determining a size of a window to be transmitted to the counterpart by multiplying the size of the congestion window by a constant if the current step is a slow start step.
상기 현재 단계가 혼잡 회피(congestion avoidance) 단계이면, 상기 현재 RTT 값과 상기 최소 RTT 값의 차이 값에 따라 상기 상대 장치로 전송할 윈도우의 크기를 결정하는 과정을 포함함을 특징으로 하는 TCP의 전송 버퍼 제어 방법.
The method as claimed in claim 6, wherein the step of adjusting the window size to be transmitted to the counterpart apparatus comprises:
And determining a size of a window to be transmitted to the counterpart device according to a difference between the current RTT value and the minimum RTT value if the current step is a congestion avoidance step, Control method.
상기 현재 RTT 값이 제1 임계 값보다 작은 경우, 상기 상대 장치로 전송할 윈도우의 크기를 일정 상수만큼(additive) 증가시키는 과정;
상기 현재 RTT 값이 제1 임계 값과 제2 임계 값의 사이 값인 경우, 상기 상대 장치로 전송할 윈도우의 크기를 유지시키는 과정; 및
상기 현재 RTT 값이 상기 제2 임계 값보다 큰 경우, 상기 상대 장치로 전송할 윈도우의 크기를 배수(multiplicative)로 감소시키는 단계를 포함하는 TCP의 전송 버퍼 제어 방법.
The method as claimed in claim 11, wherein the step of adjusting the window size to be transmitted to the counterpart apparatus comprises:
Increasing a size of a window to be transmitted to the counterpart device by a predetermined constant value when the current RTT value is smaller than a first threshold value;
Maintaining a size of a window to be transmitted to the counterpart apparatus when the current RTT value is a value between a first threshold value and a second threshold value; And
And reducing the size of the window to be transmitted to the counterpart device in a multiplicative manner when the current RTT value is larger than the second threshold value.
13. The method of claim 12, wherein the first threshold value and the second threshold value are determined based on the RTT minimum value, and the second threshold value is larger than the first threshold value. Control method.
데이터 패킷을 송수신하는 송수신부; 및
상기 TCP에서 현재 라운드 트립 타임(round trip time : RTT) 값 및 최소 RTT 값을 확인하고, 상기 TCP에 따른 혼잡 제어 방식에서 현재 단계, 상기 현재 RTT 값 및 상기 최소 RTT 값 중 적어도 하나를 기반으로 전송 버퍼의 크기를 조정하는 제어부를 포함하는 TCP의 전송 버퍼 제어 장치.
An apparatus for controlling a transmission buffer of a transport control protocol (TCP) in a communication system,
A transmitting and receiving unit for transmitting and receiving data packets; And
The method comprising: confirming a current round trip time (RTT) value and a minimum RTT value in the TCP, and transmitting, based on at least one of the current step, the current RTT value, and the minimum RTT value in the congestion control method according to the TCP And a control unit for adjusting the size of the buffer.
상기 현재 단계가 슬로우 스타트(slow start) 단계이면, 혼잡 윈도우의 크기에 일정 상수를 곱하여 상기 전송 버퍼의 크기를 조정함을 특징으로 하는 TCP의 전송 버퍼 제어 장치.
15. The apparatus of claim 14,
Wherein when the current step is a slow start step, the size of the transmission buffer is adjusted by multiplying the size of the congestion window by a constant.
상기 현재 단계가 혼잡 회피(congestion avoidance) 단계이면, 상기 현재 RTT 값과 상기 최소 RTT 값의 차이 값에 따라 상기 전송 버퍼의 크기를 조정함을 특징으로 하는 TCP의 전송 버퍼 제어 장치.
15. The apparatus of claim 14,
And adjusting the size of the transmission buffer according to a difference between the current RTT value and the minimum RTT value if the current step is a congestion avoidance step.
상기 현재 RTT 값이 제1 임계 값보다 작은 경우, 상기 전송 버퍼의 크기를 일정 상수만큼(additive) 증가시키고, 상기 현재 RTT 값이 제1 임계 값과 제2 임계 값의 사이 값인 경우, 상기 전송 버퍼의 크기를 유지시키고, 상기 현재 RTT 값이 상기 제2 임계 값보다 큰 경우, 전송 버퍼의 크기를 배수(multiplicative)로 감소시킴을 특징으로 하는 TCP의 전송 버퍼 제어 장치.
17. The apparatus of claim 16,
When the current RTT value is less than the first threshold value, increases the size of the transmission buffer by a predetermined constant, and when the current RTT value is a value between the first threshold value and the second threshold value, And when the current RTT value is greater than the second threshold value, decreasing the size of the transmission buffer to a multiplicative value.
The method as claimed in claim 17, wherein the first threshold value and the second threshold value are determined based on the RTT minimum value, and the second threshold value is larger than the first threshold value. controller.
데이터 패킷을 송수신하는 송수신부; 및
상대 장치로 정상 응답 신호(TCP acknowledgement)를 전송하는 경우의 라운드 트립 타임(round trip time : RTT) 값을 기반으로 상기 TCP에 따른 혼잡 제어 방식에서 현재 단계를 예측하고, 상기 송수신부를 통해 수신된 데이터 패킷을 기반으로 혼잡 윈도우의 크기를 예측하고, 상기 TCP에서 현재 RTT 값 및 최소 RTT 값을 확인하여, 상기 현재 단계, 상기 혼잡 윈도우의 크기, 상기 현재 RTT 값 및 상기 최소 RTT 값 중 적어도 하나를 기반으로 상기 상대 장치로 전송할 윈도우의 크기를 조정하는 제어부를 포함하는 TCP의 전송 버퍼 제어 장치.
An apparatus for controlling a transmission buffer of a transport control protocol (TCP) in a communication system,
A transmitting and receiving unit for transmitting and receiving data packets; And
Predicts a current step in a congestion control scheme according to the TCP based on a round trip time (RTT) value in the case of transmitting a normal acknowledgment signal (TCP acknowledgment) to the counterpart device, Based on at least one of the current step, the size of the congestion window, the current RTT value, and the minimum RTT value by predicting the size of the congestion window based on the packet, checking the current RTT value and the minimum RTT value in the TCP, And controlling the size of the window to be transmitted to the counterpart apparatus.
상기 상대 장치로 상기 정상 응답 신호를 전송하는 경우, 상기 송수신부를 통해 상기 상대 장치로부터 하나의 라운드(round)에서 수신된 패킷 트레인의 길이와 상기 최소 RTT 값의 절반 값의 비교 결과에 따라 상기 현재 단계를 예측함을 특징으로 하는 TCP의 전송 버퍼 제어 장치.
20. The apparatus of claim 19,
When the normal response signal is transmitted to the counterpart device, comparing the half of the minimum RTT value with the length of the packet train received in one round from the counterpart through the transceiver, Wherein the transmission buffer control unit estimates a transmission buffer of the TCP.
상기 송수신부를 통해 상기 상대 장치로부터 하나의 라운드(round)에서 수신된 데이터 패킷에 포함된 소정 개수의 정상 응답 신호들을 이용하여 계산된 RRT 값과, 상기 라운드의 이전 라운드에서 계산된 RTT 값의 차이 값에 따라 상기 현재 단계를 예측함을 특징으로 하는 TCP의 전송 버퍼 제어 장치.
20. The apparatus of claim 19,
An RRT value calculated using a predetermined number of normal response signals included in a data packet received in one round from the counterpart device through the transceiver and a difference value between RTT values calculated in the previous round of the round And the current step is predicted according to the current buffer size.
상기 송수신부를 통해 수신된 데이터 패킷의 총 바이트 크기를 미리 알려진 최대 세그먼트 사이즈(maximum segment size)로 나눈 값을 이용하여 상기 상대 장치에서 결정된 혼잡 윈도우의 크기를 예측하며,
상기 혼잡 윈도우의 크기는 패킷 개수의 단위임을 특징으로 하는 TCP의 전송 버퍼 제어 장치.
20. The apparatus of claim 19,
A size of a congestion window determined by the counterpart device is predicted using a value obtained by dividing a total byte size of a data packet received through the transceiver by a maximum segment size,
Wherein the size of the congestion window is a unit of the number of packets.
상기 현재 단계가 슬로우 스타트(slow start) 단계이면, 혼잡 윈도우의 크기에 일정 상수를 곱하여 상기 상대 장치로 전송할 윈도우의 크기를 결정함을 특징으로 하는 TCP의 전송 버퍼 제어 장치.
20. The apparatus of claim 19,
Wherein when the current step is a slow start step, the size of the window to be transmitted to the counterpart device is determined by multiplying the size of the congestion window by a constant.
상기 현재 단계가 혼잡 회피(congestion avoidance) 단계이면, 상기 현재 RTT 값과 상기 최소 RTT 값의 차이 값에 따라 상기 상대 장치로 전송할 윈도우의 크기를 결정함을 특징으로 하는 TCP의 전송 버퍼 제어 장치.
20. The apparatus of claim 19,
Wherein the controller determines the size of a window to be transmitted to the counterpart device according to a difference between the current RTT value and the minimum RTT value when the present step is a congestion avoidance step.
상기 현재 RTT 값이 제1 임계 값보다 작은 경우, 상기 상대 장치로 전송할 윈도우의 크기를 일정 상수만큼(additive) 증가시키고, 상기 현재 RTT 값이 제1 임계 값과 제2 임계 값의 사이 값인 경우, 상기 상대 장치로 전송할 윈도우의 크기를 유지시키고, 상기 현재 RTT 값이 상기 제2 임계 값보다 큰 경우, 상기 상대 장치로 전송할 윈도우의 크기를 배수(multiplicative)로 감소시킴을 특징으로 하는 TCP의 전송 버퍼 제어 장치.
25. The apparatus of claim 24,
When the current RTT value is less than the first threshold, increases the size of a window to be transmitted to the counterpart device by a predetermined constant, and when the current RTT value is a value between the first threshold value and the second threshold value, Wherein when the current RTT value is larger than the second threshold value, the size of the window to be transmitted to the counterpart device is multiplicatively decreased, controller.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160092784A KR102450226B1 (en) | 2016-07-21 | 2016-07-21 | Method and apparatus for controlling send buffer of transport control protocol in communication system |
US15/656,466 US10560389B2 (en) | 2016-07-21 | 2017-07-21 | Method and apparatus for controlling send buffer of transmission control protocol in communication system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160092784A KR102450226B1 (en) | 2016-07-21 | 2016-07-21 | Method and apparatus for controlling send buffer of transport control protocol in communication system |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20180010531A true KR20180010531A (en) | 2018-01-31 |
KR102450226B1 KR102450226B1 (en) | 2022-10-05 |
Family
ID=60990176
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160092784A KR102450226B1 (en) | 2016-07-21 | 2016-07-21 | Method and apparatus for controlling send buffer of transport control protocol in communication system |
Country Status (2)
Country | Link |
---|---|
US (1) | US10560389B2 (en) |
KR (1) | KR102450226B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102214854B1 (en) * | 2019-11-13 | 2021-02-09 | 연세대학교 산학협력단 | MPTCP Congestion Control Device and Method for High Speed and Low Latency Communication |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11070321B2 (en) * | 2018-10-26 | 2021-07-20 | Cisco Technology, Inc. | Allowing packet drops for lossless protocols |
CN109981815B (en) * | 2019-03-19 | 2022-05-27 | 广州品唯软件有限公司 | IP address selection method, terminal, server and system |
US10999206B2 (en) | 2019-06-27 | 2021-05-04 | Google Llc | Congestion control for low latency datacenter networks |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100870619B1 (en) * | 2007-06-21 | 2008-11-25 | 경북대학교 산학협력단 | A new tcp congestion control scheme using packet computer information |
KR20120122523A (en) * | 2011-04-29 | 2012-11-07 | 서강대학교산학협력단 | Method of controlling size of cogestion window and TCP system |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8457627B2 (en) * | 1999-08-24 | 2013-06-04 | Gogo Llc | Traffic scheduling system for wireless communications |
US8150995B2 (en) | 2005-09-30 | 2012-04-03 | Microsoft Corporation | Receive window auto-tuning |
AU2007210948A1 (en) * | 2006-02-01 | 2007-08-09 | Bob Tang | Immediate ready implementation of virtually congestion free guaranteed service capable network: external internet NextGenTCP NextGenFTP NextGenUDPs |
CN1976343B (en) * | 2006-11-10 | 2010-07-28 | 华为技术有限公司 | Method and system for raising transmission control protocol data handling capacity |
KR100846344B1 (en) | 2007-01-05 | 2008-07-15 | 삼성전자주식회사 | Apparatus and method for reducing transmission control protocol latency in portable communication system |
US7894367B2 (en) * | 2007-12-31 | 2011-02-22 | Industrial Technology Research Institute | Methods and systems for bandwidth protection |
US8340099B2 (en) * | 2009-07-15 | 2012-12-25 | Microsoft Corporation | Control of background data transfers |
WO2013052651A2 (en) | 2011-10-04 | 2013-04-11 | North Carolina State University | Receiver-based methods, systems, and computer readable media for controlling tcp sender behavior in cellular communications networks with large buffer sizes |
US9143454B2 (en) * | 2012-10-03 | 2015-09-22 | LiveQoS Inc. | System and method for a TCP mapper |
US9531846B2 (en) * | 2013-01-23 | 2016-12-27 | A10 Networks, Inc. | Reducing buffer usage for TCP proxy session based on delayed acknowledgement |
EP3278500B1 (en) * | 2015-03-30 | 2019-11-13 | British Telecommunications public limited company | Processing data items in a communications network |
US9935991B2 (en) * | 2015-10-13 | 2018-04-03 | Cisco Technology, Inc. | Pipelining get requests in adaptive streaming |
US9979653B2 (en) * | 2015-10-21 | 2018-05-22 | Citrix Systems, Inc. | System and method of providing improved throughput control under delay-based congestion situation in a network |
-
2016
- 2016-07-21 KR KR1020160092784A patent/KR102450226B1/en active IP Right Grant
-
2017
- 2017-07-21 US US15/656,466 patent/US10560389B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100870619B1 (en) * | 2007-06-21 | 2008-11-25 | 경북대학교 산학협력단 | A new tcp congestion control scheme using packet computer information |
KR20120122523A (en) * | 2011-04-29 | 2012-11-07 | 서강대학교산학협력단 | Method of controlling size of cogestion window and TCP system |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102214854B1 (en) * | 2019-11-13 | 2021-02-09 | 연세대학교 산학협력단 | MPTCP Congestion Control Device and Method for High Speed and Low Latency Communication |
Also Published As
Publication number | Publication date |
---|---|
US20180026899A1 (en) | 2018-01-25 |
KR102450226B1 (en) | 2022-10-05 |
US10560389B2 (en) | 2020-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8149704B2 (en) | Communication apparatus and data communication method | |
US9641650B2 (en) | TCP proxy server | |
EP3780542B1 (en) | Data transmission method and device | |
EP1698087B1 (en) | Transparent optimization for tcp flow control | |
JP4708978B2 (en) | Communication system, communication terminal, session relay device, and communication protocol realizing high throughput | |
US20080239953A1 (en) | Method and apparatus for minimizing congestion in gateways | |
JP5258938B2 (en) | Communication device | |
US9231829B2 (en) | Communication device | |
US9071452B2 (en) | High-speed communication system and high-speed communication method | |
JPH03174848A (en) | Delay base rush evading method in computer network and device | |
JPWO2012066824A1 (en) | Communication apparatus and communication system | |
KR20180010531A (en) | Method and apparatus for controlling send buffer of transport control protocol in communication system | |
CN102694731B (en) | Rate adjusting method, device and the network equipment | |
CN104683259A (en) | TCP congestion control method and device | |
US20180176136A1 (en) | TCP Bufferbloat Resolution | |
WO2017114231A1 (en) | Packet sending method, tcp proxy, and tcp client | |
JP6963411B2 (en) | Communication equipment, communication methods, and programs | |
US7336607B2 (en) | Methods and apparatus for flow control based packet aggregation in a communication network | |
KR100757894B1 (en) | Method for improving tcp performance by congestion window limit | |
KR100859908B1 (en) | Method for tcp congestion control using constant congestion state sensing | |
CN117676695A (en) | TCP transmission method, device and system | |
KR102176176B1 (en) | METHOD AND APPARATUS FOR CONTROLLING CONGESTION IN A WIRELESS NETWORK USING Transmission Control Protocol | |
KR102626729B1 (en) | Apparatus and Method for Controlling MPTCP Congestion Window in Wireless Network | |
JP7243822B2 (en) | Communication system, terminal, control method, and program | |
KR101933175B1 (en) | Mediatioin appratus mediating communication betwwen server and client |
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 | ||
GRNT | Written decision to grant |