KR20100034553A - Appratus for tcp congestion control, a method thereof and recorded medium recorded with a program executing the same - Google Patents
Appratus for tcp congestion control, a method thereof and recorded medium recorded with a program executing the same Download PDFInfo
- Publication number
- KR20100034553A KR20100034553A KR1020080093753A KR20080093753A KR20100034553A KR 20100034553 A KR20100034553 A KR 20100034553A KR 1020080093753 A KR1020080093753 A KR 1020080093753A KR 20080093753 A KR20080093753 A KR 20080093753A KR 20100034553 A KR20100034553 A KR 20100034553A
- Authority
- KR
- South Korea
- Prior art keywords
- congestion control
- duplicate
- congestion
- response threshold
- threshold
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 38
- 230000004044 response Effects 0.000 claims abstract description 160
- 238000012795 verification Methods 0.000 claims abstract description 52
- 238000011084 recovery Methods 0.000 claims description 18
- 230000005540 biological transmission Effects 0.000 claims description 17
- 239000000654 additive Substances 0.000 claims description 12
- 230000000996 additive effect Effects 0.000 claims description 12
- 230000008707 rearrangement Effects 0.000 abstract description 6
- 230000006870 function Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 6
- 238000004088 simulation Methods 0.000 description 5
- 230000015556 catabolic process Effects 0.000 description 4
- 238000006731 degradation reaction Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Images
Classifications
-
- 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/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- 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/19—Flow control; Congestion control at layers above the network layer
- H04L47/193—Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
본 발명은 TCP 혼잡제어에 관한 것으로서, 보다 상세하게는 TCP 혼잡제어 장치, 그 방법 및 그 프로그램이 기록된 기록매체에 관한 것이다.The present invention relates to TCP congestion control, and more particularly, to a TCP congestion control apparatus, a method thereof, and a recording medium on which the program is recorded.
TCP의 혼잡제어(congestion control는 다수의 네트워크 사용자간의 효율적인 자원 활용을 위해 반드시 필요한 기법이다. 혼잡제어는 혼잡이 우려되는 상황 근거가 수집되면, 수집된 상황 근거를 바탕으로 발신측 장치(source)의 전송 성능을 자발적으로 줄임으로써 혼잡 상황을 타개하고 발신측 장치(source)(이하, '제1 장치' 칭함)와 수신측 장치(destination)(이하, '제2 장치'칭함) 간의 원활한 네트워크 자원 활용이 가능하도록 하는 기법이다. Congestion control of TCP is a necessary technique for efficient resource utilization among multiple network users.Congestion control is based on the collected situation evidence based on the collected situation evidence. By spontaneously reducing transmission performance, it overcomes congestion and utilizes network resources smoothly between the source (hereinafter referred to as 'first device') and the destination (hereinafter referred to as 'second device'). This is the technique that makes it possible.
여기서 혼잡이란 패킷(packet)을 다른 네트워크로 전달하는 역할을 하는 라우터가 처리할 수 있는 능력보다 상회하는 패킷이 네트워크에 유입될 경우 일정 패킷들이 올바르게 처리되지 못하는 현상을 말한다. Here, congestion refers to a phenomenon in which certain packets are not processed correctly when a packet that exceeds the capability of a router that delivers a packet to another network enters the network.
종래 기술에 따르면, TCP는 신뢰성을 위하여 제2 장치가 수신한 패킷에 대해 해당 패킷의 순서번호를 제1 장치에 보내어 해당 패킷이 무사히 도착하였다는 것을 알려준다. According to the prior art, TCP transmits the sequence number of the packet to the first device for the packet received by the second device for reliability, indicating that the packet arrived safely.
여기서, 만일 순서에 맞지 않은 패킷을 제2 장치가 수신하게 되면, 수신하고자 하는 차례에 맞는 순서번호를 제1 장치에게 다시 보내어 패킷이 정상적으로 도착하지 않았음을 알린다. 이때, 제1 장치가 수신한 응답의 순서 번호가 동일할 경우 이를 중복 응답이라 하며, 이전에 수신한 순서 보다 더 큰 순서 번호를 수신할 경우 긍정 응답이라 한다. Here, if the second device receives a packet out of order, the second device sends the order number corresponding to the order to be received again to indicate that the packet did not arrive normally. In this case, when the order number of the response received by the first device is the same, this is called a duplicate response, and when an order number larger than the previously received order is received, it is called an affirmative response.
종래 기술에 따르면, 패킷 손실이 발생하면 이러한 중복 응답이 다수 발생하기 때문에 기존의 TCP는 이러한 중복 응답을 상황 근거로 수집하여 혼잡제어(congection control)를 수행한다.According to the prior art, since a large number of such duplicate responses occur when packet loss occurs, the conventional TCP collects such duplicate responses based on a situation and performs congestion control.
보다 상세하게는 빠른 혼잡제어를 위해 하나의 순서 번호에 대하여 3개 이상의 중복 응답을 수신하게 되면 해당 패킷이 손실되었다고 판단하며, 그 손실은 네트워크에 혼잡이 일어나 발생한 것으로 판단하여 혼잡제어를 수행하게 된다. 혼잡제어가 발생하면 해당 세션에 대해 전송률을 반으로 줄이는 등 성능을 큰 폭으로 줄이고, 손실된 것으로 판단되는 패킷을 다시 전송한다. More specifically, if three or more duplicate responses are received for one sequence number for fast congestion control, it is determined that the corresponding packet is lost, and the loss is determined to be caused by congestion in the network and congestion control is performed. . When congestion control occurs, the performance is greatly reduced by halving the transmission rate for the session, and the packet which is determined to be lost is transmitted again.
그러나, 종래 기술에 따르면, 불필요한 혼잡제어가 발생하면 혼잡하지 않은 상황임에도 불구하고 잘못된 메커니즘으로 인해 해당 세션의 성능을 효율적으로 사용할 수 없다는 문제점이 있다. However, according to the related art, when unnecessary congestion control occurs, there is a problem in that the performance of the session cannot be efficiently used due to a wrong mechanism even though it is not congested.
패킷 재배치(packet redordering)란 전송과정 중에 패킷의 순서가 뒤섞여서 먼저 제1 장치에서 먼저 전송한 패킷이 나중에 보낸 패킷 보다 늦게 제2 장치에 도착하는 현상을 말한다. Packet redordering refers to a phenomenon in which packets are interspersed during a transmission process so that a packet transmitted first by the first device arrives at the second device later than a packet sent later.
종래 기술에 따르면 패킷 재배치의 발생률은 높지 않아 중복 응답의 원인으로 잘 고려되지 않았다는 문제점이 있다. 최근 들어, 네트워크 장비의 발달과 알고리즘의 발전으로 인해 패킷 재배치의 발생률이 높아지고 있다. 종래 기술에 따르면, 패킷 재배치로 인한 불필요한 혼잡제어가 발생하여 TCP 성능저하를 일으키고 있다는 문제점이 있다. According to the prior art, there is a problem that packet incidence of relocation is not high and is not well considered as a cause of duplicate response. Recently, due to the development of network equipment and the development of algorithms, the incidence of packet relocation is increasing. According to the prior art, there is a problem that unnecessary congestion control occurs due to packet relocation, causing TCP performance degradation.
따라서 패킷 재배치를 고려한 새로운 혼잡제어 기법의 개발에 대한 필요성이 대두되고 있다. Therefore, there is a need for developing a new congestion control scheme considering packet relocation.
본 발명의 목적은 패킷 재배치를 고려한 혼잡제어를 수행하는 혼잡제어 수행장치, 그 방법 및 그 프로그램이 기록된 기록매체를 제안하는 것이다.An object of the present invention is to propose a congestion control performing apparatus for performing congestion control in consideration of packet rearrangement, a method thereof, and a recording medium on which the program is recorded.
본 발명의 다른 목적은 패킷 재배치로 인한 혼잡제어가 수행된 경우, 성능이 저하된 TCP 성능을 복구하는 혼잡제어 수행장치, 그 방법 및 그 프로그램이 기록된 기록매체를 제안하는 것이다.Another object of the present invention is to propose a congestion control performing apparatus for recovering a degraded TCP performance when a congestion control is performed due to packet relocation, a method and a recording medium on which the program is recorded.
본 발명의 일 측면에 따르면, TCP(transmission control protocol)의 혼잡을 제어(congestion control)하는 장치에 있어서, 결합된 망(network)과 데이터를 송 수신하는 송수신부; 소정의 타이머를 포함하는 검증타이머; 합증가곱감소(Additive Increase/Multiplicative Decrease), 느린 시작(Slow Start), 빠른 재전송(Fast Retransmit) 및 빠른 회복(Fast Recovery) 중 하나 이상을 이용하여 혼잡제어(congestion control)을 수행하는 혼잡제어 수행부; 상기 송수신부가 중복응답을 수신하는 경우 상기 검증타이머를 구동하는 제어부를 포함하되, 상기 제어부는 상기 송수신부가 수신한 중복응답의 개수가 중복응답임계값 이상인 경우 상기 혼잡제어수행부를 제어하여 제1 혼잡제어를 수행하고, 상기 송수신부가 상기 검증타이머가 만료되기전에 상기 제1 혼잡제어 따른 긍정응답을 수신하는 경우 패킷 재배치(packet reordering)가 발생한 것으로 검증하고, 상기 중복응답임계값, 느린출발임계점(Slow Start threshold, Ssthresh) 및 혼잡윈도우(congestion window, Cwnd) 중 하나 이상을 제1 재설정하는 것을 특징으로 하는 혼잡제어 수행 장치가 제공된다. According to an aspect of the present invention, an apparatus for controlling congestion of a transmission control protocol (TCP), the apparatus comprising: a transceiver for transmitting and receiving a combined network and data; A verification timer including a predetermined timer; Congestion control that performs congestion control using one or more of Additive Increase / Multiplicative Decrease, Slow Start, Fast Retransmit, and Fast Recovery part; And a controller for driving the verification timer when the transceiver receives a duplicate response, wherein the controller controls the congestion control execution unit when the number of duplicate responses received by the transceiver is greater than or equal to the duplicate response threshold to control the first congestion. And if the transceiver receives an acknowledgment according to the first congestion control before the verification timer expires, verifies that packet reordering has occurred, and the duplicate response threshold and slow start threshold (Slow Start). An apparatus for performing congestion control is provided that first resets one or more of a threshold, an Ssthresh, and a congestion window Cwnd.
또한, 상기 제어부는 상기 송수신부가 수신한 중복응답의 개수가 상기 중복응답임계값 미만이며 상기 검증타이머가 만료(expire)한 경우, 상기 혼잡제어수행부를 제어하여 제2 혼잡제어를 수행하고, 상기 중복응답임계값을 제2 재설정할 수 있다.The controller may control the congestion control execution unit to perform a second congestion control when the number of duplicate responses received by the transceiver unit is less than the duplicate response threshold value and the verification timer expires. The response threshold may be reset second.
또한, 상기 제어부는 수학식 을 이용하여 상기 중복응답임계값을 제1 재설정할 수 있다.In addition, the control unit is an equation The duplicate response threshold may be first reset using.
여기서, dt는 중복응답임계값이고, dts는 중복응답임계값으로 재설정될 새로 운 값이고, dtpre는 이전의 중복응답임계값이고, dtM는 패킷 재배치을 검증한 때까지 수신한 중복응답의 개수이고, α는 0이상 1이하의 지정된 실수이다.Where dt is the duplicate response threshold, dt s is the new value to be reset to the duplicate response threshold, and dt pre is The previous duplicate response threshold, dt M is the number of duplicate responses received until the packet relocation has been verified, and α is a specified real number between 0 and 1, inclusive.
또한, 상기 제어부는 하기의 수학식을 이용하여 느린출발임계점(Ssthresh) 및 혼잡윈도우(cwnd) 중 하나 이상을 제1 재설정할 수 있다.In addition, the controller may first reset one or more of the slow start threshold point (Ssthresh) and the congestion window (cwnd) using the following equation.
[수학식][Equation]
느린출발임계점현재 = 느린출발임계점이전 Slow start Threshold = current slow start threshold before
혼잡윈도우현재 = 2 Х 혼잡윈도우현재 Congestion window present = 2 Х Congestion window present
또한, 상기 제어부는 상기 중복응답임계값을 3으로 제2 재설정할 수 있다.The controller may second reset the duplicate response threshold to three.
또한, 상기 검증 타이머는 패킷왕복시간(RTT)의 크기일 수 있다.In addition, the verification timer may be a size of a packet return time (RTT).
본 발명의 다른 측면에 의하면, TCP(transmission control protocol)의 혼잡을 제어(congestion control)하는 장치에 있어서, 결합된 망(network)과 데이터를 송수신하는 송수신부; 소정의 타이머를 포함하고, 상기 송수신부가 중복응답을 수신하는 경우 구동하는 검증타이머; 합증가곱감소(Additive Increase/Multiplicative Decrease), 느린 시작(Slow Start), 빠른 재전송(Fast Retransmit) 및 빠른 회복(Fast Recovery) 중 하나 이상을 이용하여 혼잡제어(congestion control)을 수행하는 혼잡제어 수행부; 및 상기 송수신부, 상기 검증타이머 및 상기 혼합 제어 수행부를 제어하는 제어부를 포함하되, 상기 혼잡제어수행부는 상기 송수신부가 수신한 중복응답의 개수가 상기 중복응답임계값 이상인 경우 제1 혼잡제어를 수행하고, 상기 제어부는 상기 검증타이머가 만료되기전에 상기 송수신부가 상기 제1 혼잡제어 따른 긍정응답을 수신하는 경우 패킷 재배치(packet reordering)가 발생한 것으로 검증하고, 상기 중복응답임계값, 느린출발임계점(Slow Start threshold, Ssthresh) 및 혼잡윈도우(congestion window, Cwnd) 중 하나 이상을 제2 재설정하는 것을 특징으로 하는 혼잡제어 수행 장치가 제공된다. According to another aspect of the present invention, an apparatus for controlling congestion of a transmission control protocol (TCP), the apparatus comprising: a transceiver for transmitting and receiving data to and from a combined network; A verification timer including a predetermined timer and driving when the transceiver receives a duplicate response; Congestion control that performs congestion control using one or more of Additive Increase / Multiplicative Decrease, Slow Start, Fast Retransmit, and Fast Recovery part; And a controller for controlling the transceiver, the verification timer, and the mixing control unit, wherein the congestion control unit performs the first congestion control when the number of duplicate responses received by the transceiver unit is greater than or equal to the duplicate response threshold. The controller verifies that packet reordering has occurred when the transceiver receives an acknowledgment according to the first congestion control before the verification timer expires, and the duplicate response threshold and the slow start threshold (Slow Start). Provided is a congestion control performing device, characterized in that the second reset of at least one of a threshold, a Ssthresh, and a congestion window (Cwnd).
또한, 상기 혼잡제어 수행부는 상기 송수신부가 수신한 중복응답의 개수가 상기 중복응답임계값 미만이며 상기 검증타이머가 만료(expire)한 경우 제2 혼잡제어를 수행하고, 상기 제어부는 상기 제2 혼잡제어에 따라 상기 중복응답임계값을 제2 재설정할 수 있다.The congestion control unit may perform a second congestion control when the number of duplicate responses received by the transceiver unit is less than the duplicate response threshold value and the verification timer expires, and the control unit performs the second congestion control. In response to the duplicated response threshold may be reset.
본 발명의 또 다른 측면에 의하면, 혼잡제어(congestion control) 장치가 TCP(transmission control protocol)의 혼잡을 제어하는 방법에 있어서, (a) 중복응답을 수신하는 경우 검증타이머를 구동하는 단계; (b) 수신한 중복응답의 개수가 중복응답임계값 이상인 경우 합증가곱감소(Additive Increase/Multiplicative Decrease), 느린 시작(Slow Start), 빠른 재전송(Fast Retransmit) 및 빠른 회복(Fast Recovery) 중 하나 이상을 이용하여 제1 혼잡제어(congestion control)을 수행하는 단계; 및 (c) 상기 검증타이머가 만료되기전에 상기 제1 혼잡제어에 따른 긍정응답을 수신하는 경우 패킷 재배치(packet reordering)가 발생한 것으로 검증하고, 상기 중복응답임계값, 느린출발임계점(Slow Start threshold, Ssthresh) 및 혼잡윈도우(congestion window, Cwnd) 중 하나 이상을 제1 재설정하는 단계를 포함하는 혼잡제어 방법이 제공된다. According to another aspect of the present invention, a method of controlling a congestion control (TCP) congestion control device comprising: (a) driving a verification timer when receiving a duplicate response; (b) If the number of duplicate responses received is greater than or equal to the duplicate response threshold, one of Additive Increase / Multiplicative Decrease, Slow Start, Fast Retransmit, and Fast Recovery. Performing a first congestion control using the above; And (c) verifying that packet reordering has occurred when receiving an acknowledgment according to the first congestion control before the verification timer expires, the duplicate response threshold, a slow start threshold, A congestion control method is provided that includes first resetting one or more of Ssthresh and a congestion window (Cwnd).
또한, 상기 (a) 단계 이후 상기 (b)단계 이전에, (d1) 수신한 상기 중복응답의 개수가 상기 중복응답임계값 미만이며 상기 검증타이머가 만료한 경우, 합증가곱감소(Additive Increase/Multiplicative Decrease), 느린 시작(Slow Start), 빠른 재전송(Fast Retransmit) 및 빠른 회복(Fast Recovery) 중 하나 이상을 이용하여 제2 혼잡제어(congestion control)을 수행하는 단계; 및 (d2) 상기 제2 혼잡제어에 따라 상기 중복응답임계값을 제2 재설정하는 단계를 더 포함할 수 있다. Further, after the step (a) and before the step (b), if the number of the duplicated responses received (d1) is less than the duplicated response threshold and the verification timer expires, the sum of additional increases / additive increase / Performing second congestion control using one or more of Multiplicative Decrease, Slow Start, Fast Retransmit, and Fast Recovery; And (d2) resetting the duplicate response threshold value according to the second congestion control.
또한, 상기 (c)단계는 수학식 을 이용하여 상기 중복응답임계값을 제1 재설정할 수 있다. In addition, the step (c) is the equation The duplicate response threshold may be first reset using.
여기서, dt는 중복응답임계값이고, dts는 중복응답임계값으로 재설정될 새로운 값이고, dtpre는 이전의 중복응답임계값이고, dtM는 패킷 재배치을 검증한 때까지 수신한 중복응답의 개수이고, α는 0이상 1이하의 지정된 실수이다.Where dt is the duplicate response threshold, dt s is the new value to be reset to the duplicate response threshold, and dt pre is The previous duplicate response threshold, dt M is the number of duplicate responses received until the packet relocation has been verified, and α is a specified real number between 0 and 1, inclusive.
또한, 상기 (c)단계는 하기의 수학식을 이용하여 느린출발임계점(Ssthresh) 및 혼잡윈도우(cwnd) 중 하나 이상을 제1 재설정할 수 있다. In addition, the step (c) may first reset one or more of the slow start threshold (Ssthresh) and the congestion window (cwnd) using the following equation.
[수학식][Equation]
느린출발임계점현재 = 느린출발임계점이전 Slow start Threshold = current slow start threshold before
혼잡윈도우현재 = 2 Х 혼잡윈도우현재 Congestion window present = 2 Х Congestion window present
본 발명의 또 다른 측면에 의하면, 혼잡제어(congestion control)를 수행하기 위해 혼잡제어 장치에 의해 실행될 수 있는 명령어들의 프로그램이 구현되어 있으며, 상기 혼잡제어 장치에 의해 판독될 수 있는 프로그램을 기록한 기록매체에 있어서, (a) 중복응답을 수신하는 경우 검증타이머를 구동하는 단계; (b) 수신한 중복응답의 개수가 중복응답임계값 이상인 경우 합증가곱감소(Additive Increase/Multiplicative Decrease), 느린 시작(Slow Start), 빠른 재전송(Fast Retransmit) 및 빠른 회복(Fast Recovery) 중 하나 이상을 이용하여 제1 혼잡제어(congestion control)을 수행하는 단계; 및 (c) 상기 검증타이머가 만료되기전에 상기 제1 혼잡제어에 따른 긍정응답을 수신하는 경우 패킷 재배치(packet reordering)가 발생한 것으로 검증하고, 상기 중복응답임계값, 느린출발임계점(Slow Start threshold, Ssthresh) 및 혼잡윈도우(congestion window, Cwnd) 중 하나 이상을 제1 재설정하는 단계를 실행하기 위한 프로그램이 기록된 기록매체가 제공된다. According to another aspect of the present invention, a program of instructions that can be executed by a congestion control device is implemented to perform congestion control, and a recording medium recording a program that can be read by the congestion control device. A method comprising: (a) driving a verification timer when receiving a duplicate response; (b) If the number of duplicate responses received is greater than or equal to the duplicate response threshold, one of Additive Increase / Multiplicative Decrease, Slow Start, Fast Retransmit, and Fast Recovery. Performing a first congestion control using the above; And (c) verifying that packet reordering has occurred when receiving an acknowledgment according to the first congestion control before the verification timer expires, the duplicate response threshold, a slow start threshold, There is provided a recording medium having recorded thereon a program for executing a first resetting step of at least one of Ssthresh and a congestion window Cwnd.
본 발명에 따른 혼잡제어 수행장치, 그 방법 및 그 프로그램이 기록된 기록매체는 패킷 재배치를 고려한 혼잡제어를 수행한다는 장점이 있다.An apparatus for performing congestion control according to the present invention, a method thereof, and a recording medium on which the program is recorded have an advantage of performing congestion control in consideration of packet relocation.
또한, 패킷 재배치로 인한 혼잡제어가 수행된 경우, 성능이 저하된 TCP 성능을 복구한다는 장점이 있다. In addition, when congestion control due to packet relocation is performed, there is an advantage of recovering the degraded TCP performance.
본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.As the invention allows for various changes and numerous embodiments, particular embodiments will be illustrated in the drawings and described in detail in the written description. However, this is not intended to limit the present invention to specific embodiments, it should be understood to include all transformations, equivalents, and substitutes included in the spirit and scope of the present invention. In the following description of the present invention, if it is determined that the detailed description of the related known technology may obscure the gist of the present invention, the detailed description thereof will be omitted.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. The terms first, second, etc. may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting of the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this application, the terms "comprise" or "have" are intended to indicate that there is a feature, number, step, operation, component, part, or combination thereof described in the specification, and one or more other features. It is to be understood that the present invention does not exclude the possibility of the presence or the addition of numbers, steps, operations, components, components, or a combination thereof.
이하, 본 발명의 실시예를 첨부한 도면들을 참조하여 상세히 설명하기로 한 다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면 번호에 상관없이 동일한 수단에 대해서는 동일한 참조 번호를 사용하기로 한다. Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. In order to facilitate a thorough understanding of the present invention, the same reference numerals are used for the same means regardless of the number of the drawings.
도 1은 본 발명의 실시예에 따른 패킷 발신 장치와 수신 장치간의 연결을 예시한 도면이다.1 is a diagram illustrating a connection between a packet transmitting apparatus and a receiving apparatus according to an embodiment of the present invention.
도 1을 참조하면, 본 발명의 실시예에 따른 발신 장치(100)(Source, 이하, '제1 장치'라칭함)는 네트워크(150)를 통하여 수신 장치(destination, 이하, 이하,'제2 장치'칭함)와 연결될 수 있다.Referring to FIG. 1, a source apparatus 100 (Source, hereinafter referred to as 'first apparatus') according to an embodiment of the present invention is a destination apparatus (destination, hereinafter, hereinafter, 'second' through a network 150). Device ').
네트워크(150)에는 망의 부하 분산을 위하여 다중 경로 라우팅(multi path routing), 라우트 플루터링(route fluttering) 등의 다양한 병렬처리 기법이 적용될 수있다. The
제1 장치(100)는 컴퓨터, 이동 단말 등 데이터를 송수신할 수 있는 다양한 단말이 될 수 있으며, 본 발명이 적용되는 환경에 따라 단말이 연결된 라우터(예를 들어 참조번호 102)와 같이 패킷을 전송하는 중계장치가 될 수 있음은 본 발명의 기술적 사상에 비추어 당업자에게 자명하다. The
이하, 본 발명의 이해와 설명의 편의를 도모하기 위하여 제1 장치(100)가 단말인 것을 가정하여 설명하나, 이에 한정되지 아니함은 당업자에게 자명하다. Hereinafter, a description will be given on the assumption that the
지금까지 도 1을 참조하여 본 발명의 실시예에 따라 제1 장치(100)와 제2 장치(110)가 네트워크(150)을 통하여 연결될 수 있음을 설명하였다. Up to now, it has been described with reference to FIG. 1 that the
이하, 도 2를 참조하여 제1 장치(100)의 구성을 설명한다. Hereinafter, the configuration of the
도 2는 본 발명의 제1 실시예에 따른 제1 장치(100)의 구성을 예시한 블록도이다.2 is a block diagram illustrating a configuration of the
도 2를 참조하면, 본 발명의 제1 실시예에 따른 제1 장치(100)는 송수신부(201), 검증타이머(202), 혼잡제어수행부(203) 및 제어부(204)를 포함할 수 있다.Referring to FIG. 2, the
송수신부(201)는 제1 장치(100)가 연결된 네트워크(150)를 통하여 제2 장치(110)간의 데이터를 송수신할 수 있다.The
검증타이머(202)는 소정의 타이머를 포함할 수 있다.The
여기서, 검증타이머(202)가 포함하는 타이머의 크기값은 본 발명이 적용되는 환경에 따라 다양한 값으로 지정될 수 있음은 당업자에게 자명하다. Here, it will be apparent to those skilled in the art that the size value of the timer included in the
예를 들어, 검증타이머(202)는 패킷왕복시간(RTT) 크기만큼의 타이머를 포함할 수 있다.For example, the
혼잡제어수행부(203)는 합증가곱감소(Additive Increase/Multiplicative Decrease), 느린 시작(Slow Start), 빠른 재전송(Fast Retransmit) 및 빠른 회복(Fast Recovery) 중 하나 이상을 이용하여 혼잡제어를 수행할 수 있다.The
여기서, 합증가곱감소(AIMD), 느린 시작(Slow Start), 빠른 재전송(Fast Retransmit) 및 빠른 회복(Fast Recovery)은 본 발명의 출원시 당업자에게 공지된 기술이므로, 본 발명의 요지를 명확하게 하기 위하여 본 발명과 관련한 부분을 제외하고 상세한 설명은 생략한다. Here, AIMD, Slow Start, Fast Retransmit, and Fast Recovery are techniques known to those skilled in the art at the time of filing the present invention, and therefore, the gist of the present invention is clearly stated. Detailed description is omitted except for parts related to the present invention.
제어부(204)는 송수신부(201), 검증타이머(202) 및 혼잡제어수행부(203)를 제어할 수 있다. 이하, 본 발명의 제1 실시예에 따른 제어부(204)의 기능에 대해서 설명한다. The
<제어부(204)의 제1기능><First function of
본 발명의 제1 실시예에 따르면 송수신부(201)가 중복응답을 수신하는 경우 제어부(204)는 검증타이머(202)를 구동할 수 있다.According to the first embodiment of the present invention, when the
<제어부(204)의 제2기능><2nd function of the
또한, 본 발명의 제1 실시예에 따르면, 제어부(204)는 송수신부가 수신한 중복응답의 개수가 중복응답임계값 이상인 경우, 혼잡제어수행부(203)를 제어하여 제1 혼잡제어를 수행할 수 있다. 이때, 검증타이머(202)가 만료되기전에 송수신부(201)가 제1 혼잡제어에 따른 긍정응답을 수신하는 경우, 제어부(204)는 패킷 재배치가 발생한 것으로 검증하고, 중복응답임계값, 느린출발임계점(Slow Start threshold, 이하 ‘ssthresh’라 칭함), 혼잡윈도우 (congestion window, 이하 ‘cwnd’라 칭함) 중 하나 이상을 제1 재설정할 수 있다. In addition, according to the first embodiment of the present invention, the
여기서, 혼잡윈도우(cwnd)는 제1 장치가 ACK 메시지를 수신하기 전까지 네트워크(150)에 전송한 데이터의 양이다.Here, the congestion window cwnd is the amount of data transmitted to the
여기서, 제1 혼잡제어 및 제1 재설정은 본 발명의 실시예에 따라 다른 조건하에 수행되는 혼잡제어 및 재설정과 구분하기 위해 명칭한 것이다. Here, the first congestion control and the first reset are named to distinguish them from the congestion control and the reset performed under different conditions according to the embodiment of the present invention.
종래 기술에 따르면, 패킷 재배치를 고려하지 않는다는 문제점이 있다.According to the prior art, there is a problem that packet rearrangement is not considered.
보다 상세하게는, 종래기술에 따르면 중복응답임계값의 크기는 패킷 재배치가 일어난 순간의 중복응답의 개수로 결정되어 보편성이 떨어진다는 문제점이 있다. More specifically, according to the prior art, the size of the duplicate response threshold value is determined by the number of duplicate responses at the moment of packet relocation, and thus there is a problem that the universality is inferior.
또한, 종래기술에 따르면, 한번 증가된 중복응답임계값이 네트워크 상황을 반영하여 줄어드는데 오랜 시간이 걸리기 때문에 혼잡에 효율적으로 대응할 수 없으며, 불필요하게 재전송 타이머가 만료 되는 등 TCP 성능의 저하를 초래한다는 문제점이 있다.In addition, according to the related art, since the duplicated response threshold once increased takes a long time to reflect the network situation, it cannot effectively cope with congestion, and unnecessarily expires the retransmission timer, causing TCP degradation. There is a problem.
이하, 패킷 재배치가 검증될 때까지 수신한 중복응답의 수를 중복응답길이라고 칭한다. 본 발명은 중복응답길이를 통해서 새로운 중복응답임계값을 도출해 내는 방법을 제안 한다. 중복응답길이는 측정될 당시의 네트워크 상황에 국한된 결과이며, 당시의 혼잡 윈도우(Cwnd)의 크기에 따라 그 값에 큰 차이가 발생 한다. 그러나, 이 값의 크기를 통해 대략적으로 현재 네트워크의 패킷 재배치 정도를 유추할 수 있다는 점에 주목하자. Hereinafter, the number of duplicate responses received until packet relocation is verified is called a duplicate response length. The present invention proposes a method for deriving a new duplicate response threshold value through the duplicate response length. The redundant response length is a result limited to the network condition at the time of measurement, and a large difference occurs in the value depending on the size of the congestion window (Cwnd) at the time. However, note that the magnitude of this value can roughly infer the degree of packet relocation in the current network.
본 발명은 중복응답길이를 통해 중복응답임계값을 재설정하고, 재설정된 중복응답임계값을 이용하여 혼잡제어를 수행하는 방법을 제안한다. The present invention proposes a method of resetting a duplicate response threshold value through a duplicate response length and performing congestion control using the reset duplicate response threshold value.
본 발명의 제1 실시예에 따르면, 제어부(204)는 검증타이머(202)가 만료되기전에 송수신부(201)가 제1 혼잡제어에 따른 긍정응답을 수신하는 경우, 제어부(204)는 패킷 재배치가 발생한 것으로 검증할 수 있다. 이 경우, 제어부(204)는 불필요하게 저하시킨 TCP의 성능을 복구하기 위하여 중복응답임계값, 느린출발임계점(ssthresh), 혼잡윈도우 (cwnd) 중 하나 이상을 제1 재설정할 수 있다. According to the first embodiment of the present invention, when the
보다 상세하게는 제어부(204)는 하기의 수학식 1을 이용하여 중복응답임계값, 느린출발임계점(Ssthresh), 및 혼잡윈도우(Cwnd) 중 하나 이상을 제1 재설정할 수 있다. More specifically, the
[수학식 1][Equation 1]
여기서, dt는 중복응답임계값이고, dts는 중복응답임계값으로 재설정될 새로운 값이고, dtpre는 이전의 중복응답임계값이고, dtM는 패킷 재배치을 검증한 때까지 수신한 중복응답의 개수이고, α는 0 이상 1이하의 지정된 실수이다.Where dt is the duplicate response threshold, dt s is the new value to be reset to the duplicate response threshold, and dt pre is The previous duplicate response threshold, dt M is the number of duplicate responses received until the packet relocation has been verified, and α is a specified real number between 0 and 1, inclusive.
따라서, 본 발명의 제1 실시예에 따르면, 제어부(204)는 패킷 재배치에 따른 혼잡제어가 수행된 경우 중복응답임계값을 지속적으로 감소시키지 아니할 수 있다. Therefore, according to the first embodiment of the present invention, the
보다 상세하게는, 제어부(204)는 중복응답길이(dtM)와 이전의 중복응답임계값(dtpre) 에 각각 가중치(1-α), 가중치(α)를 적용한 후 두 값의 합을 새로운 중복응답임계값()으로 재설정할 수 있다.More specifically, the
이렇게 재설정된 중복응답임계값은 빠른 재전송 및 빠른 복구의 수행을 지연할 수있다. This reset duplicated response threshold can delay the performance of fast retransmission and fast recovery.
따라서, 본 발명의 제1 실시예에 따르면, 급변하는 네트워크 환경에 적용하 기 알맞은 보편적인 중복응답임계값을 재설정할 수 있다는 장점이 있다. 또한, 이를 통해 패킷 재배치에 의한 혼잡제어를 예방하여 불필요한 성능 저하를 막고 그를 통해 네트워크의 자원을 효율적으로 사용할 수 있다Therefore, according to the first embodiment of the present invention, there is an advantage in that it is possible to reset a universal duplicate response threshold suitable for application in a rapidly changing network environment. In addition, this prevents congestion control due to packet relocation, thereby preventing unnecessary performance degradation and thereby efficiently using network resources.
또한, 본 발명의 제1 실시예에 따르면 제어부(204)는 패킷 재배치에 따른 불필요한 혼잡제어가 검증되면, 불필요한 혼잡제어를 통해 저하된 TCP 성능을 복구하기 위해 TCP와 관련된 두가지 요소를 조절할 수 있다.In addition, according to the first embodiment of the present invention, if unnecessary congestion control according to packet rearrangement is verified, the
보다 상세하게는, 제어부(204)는 하기의 수학식 2를 이용하여 느린출발임계점 (Ssthreh) 및 혼잡윈도우(Cwnd)를 조절할 수 있다. In more detail, the
[수학식 2][Equation 2]
느린출발임계점현재 = 느린출발임계점이전 Slow start Threshold = current slow start threshold before
혼잡윈도우현재 = 2 Х 혼잡윈도우현재 Congestion window present = 2 Х Congestion window present
예를 들어, 제어부(204)는 혼잡윈도우(Cwnd)의 크기를 증가시켜 감소된 전송률을 복구할 수 있다. 여기서, 혼잡윈도우(Cwnd)가 클수록 해당 세션은 높은 전송률을 가질 수 있다. For example, the
예를 들어, 제어부(204)는 느린출발임계값을 혼잡제어가 발생하기 이전 값으로 복구할 수 있다. 여기서, 느린출발임계값(Ssthreth)은 혼잡 윈도우의 크기 변화폭을 결정하는 요소이다. 따라서 느린출발임계값(Ssthreth) 역시 TCP 세션의 성능에 주요한 영향을 미치는 요소이다. For example, the
따라서, 본 발명의 제1 실시예에 따르면, 혼잡과 관련한 불필요하게 제한된 두 요소의 크기를 복구시켜 줌으로써 패킷 재배치에 의한 불필요한 성능 저하를 복구할 수 있다. Therefore, according to the first embodiment of the present invention, by restoring the size of two elements that are unnecessarily limited in relation to congestion, unnecessary performance degradation due to packet relocation can be recovered.
본 발명의 제1 실시예에 따르면 혼잡제어수행부(203)에 의해 제1 혼잡제어가 수행된 이후, 제1 혼잡제어에 따른 긍정응답이 검증타이머(202) 만료전에 수신되는 경우에 패킷 재배치에 의한 혼잡제어가 수행된것으로 제어부(204)가 검증한 것으로 설명하였다.According to the first embodiment of the present invention, after the first congestion control is performed by the congestion
만일, 해당 패킷이 손실되어, 그 손실에 따른 제1 혼잡제어가 수행되고, 제1 혼잡제어에 따른 긍정응답이 검증타이머(202) 만료전에 수신되는 경우가 발생할 수 있다. 이 경우, 해당 패킷부터 긍정응답에 따른 왕복시간은 네트워크의 상황을 나타내기 때문에, 검증 타이머 이내에 재전송한 패킷에 대한 응답이 왔다는 것은 그만큼 네트워크의 자원이 풍부하다는 것을 의미할 수 있다. 따라서, 본 발명의 실시예에 따르면, 제어부(204)는 이 경우 혼잡제어는 불필요하다고 판단할 수 있고, 이하 앞서 상술한 바와 같다. If the corresponding packet is lost, a first congestion control may be performed according to the loss, and an acknowledgment according to the first congestion control may be received before expiration of the
<제어부(204)의 제3기능><3rd function of the
본 발명의 제1 실시예에 따르면 제어부(204)는 중복응답임계값이 잘못 설정된 경우 초기화 할 수 있다.According to the first embodiment of the present invention, the
중복응답임계값은 수시로 변하게 되는데 이러한 중복응답임계값이 본 발명의 실시예에 따라 완만한 조절기법을 사용하였음에도 불구하고 불필요하게 커질 경우 제때에 혼잡에 대한 제어를 수행하지 못할 수 있다. 이와 같이 제때에 혼잡제어가 발생하지 않는 일이 일어나면 제어부(204)는 중복응답임계값이 잘못 설정된 것으로 판단하고 중복응답 임계값을 소정의 값으로 재설정할 수 있다.The duplicate response threshold changes frequently, and if such a duplicate response threshold increases unnecessarily in spite of using a gentle adjustment method according to an embodiment of the present invention, it may not be possible to control the congestion in time. As such, when congestion control does not occur in a timely manner, the
예를 들어, 송수신부(201)가 중복응답을 수신하여 검증타이머(202)가 구동하였으나 검증타이머(202)가 만료될 때까지 송수신부(201)가 긍정응답을 수신하지 못할 수 있다. 만일 이때, 빠른 재전송 빠른 복구를 통한 혼잡제어조차도 일어나지 않는다면, 중복응답임계값이 과도하게 증가한 것으로 판단할 수 있다. 본 발명의 실시예에 따르면 이 경우, 제어부(204)가 중복응답임계값을 소정의 값으로 재설정하여, 추가적으로 검증타이머의 크기만큼 지연되어 혼잡제어수행부(203)가 혼잡제어를 수행할 수 있다.For example, the transmission /
여기서, 제어부(204)는 중복응답임계값을 본 발명이 적용되는 환경에 따라 다양하게 값으로 재설정할 수 있음은 본 발명의 기술적 사상에 비추어 당업자에게 자명하다. Here, it will be apparent to those skilled in the art in view of the technical spirit of the present invention that the
지금까지 도 2를 참조하여 본 발명의 실시예에 따른 제1 장치(100)의 각 구성부의 기능에 대해서 설명하였다. The function of each component of the
여기서, 본 명세서에서의 구성부들에 대한 구분은 각 구성부가 담당하는 주기능별로 구분한 것에 불과함을 명확히 하고자 한다. 즉, 상술한 2개 이상의 구성 부가 하나의 구성부로 합쳐지거나 또는 하나의 구성부가 보다 세분화된 기능별로 2개 이상으로 분화되어 구비될 수도 있다. 그리고 앞서 설명할 구성부 각각은 자신이 담당하는 주기능 이외에도 다른 구성부가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성부 각각이 담당하는 주기능 중 일부 기능이 다른 구성부에 의해 전담되어 수행될 수도 있음은 물론이다. 따라서, 본 명세서를 통해 설명되는 각 구성부들의 존재 여부는 기능적으로 해석 되어져야 할 것이며, 이러한 이유로 본 발명의 실시예에 따른 혼잡제어 장치 따른 구성부들의 구성은 본 발명의 목적을 달성할 수 있는 한도 내에서 도 2와는 상이해질 수 있음을 명확히 밝혀둔다. Here, the divisions for the components in the present specification are intended to be clear that they are only divided by the main functions in charge of each component. That is, the two or more components described above may be combined into one component, or one component may be divided into two or more parts for each of the more detailed functions. Each of the components described above may additionally perform some or all of the functions of other components in addition to the main functions of the components, and some of the main functions of the components are different from each other. Of course, it may be carried out exclusively by. Therefore, the presence or absence of each component described through this specification should be interpreted functionally, and for this reason the configuration of the components according to the congestion control device according to an embodiment of the present invention can achieve the object of the present invention It is clearly noted that within limits, this may differ from FIG. 2.
이하 본 발명의 제2 실시예에 따른 각 구성부의 기능에 대해서 설명한다. 보다 상세하게는 제어부(204)가 조건을 각 구성부를 제어하기 위한 조건판단을 해당 구성부가 자체적으로 판단할 수 있다. Hereinafter, the functions of each component according to the second embodiment of the present invention will be described. In more detail, the
보다 상세하게는, 본 발명의 제 2실시예에 따르면, 검증타이머(202)는 송수신부(201)가 중복응답을 수신하는 경우 구동할 수 있다.More specifically, according to the second embodiment of the present invention, the
또한, 본 발명의 제2 실시예에 따르면, 혼잡제어수행부(203)는 송수신부가 수신한 중복응답의 개수가 중복응답임계값 이상인 경우, 제1 혼잡제어를 수행할 수 있다. In addition, according to the second embodiment of the present invention, the
또한, 본 발명의 제2 실시예에 따르면, 혼잡제어수행부(203)는 송수신부(201)가 수신한 중복응답의 개수가 중복응답임계값미만이며 검증타이머(202)가 만료되는 경우 제2 혼잡제어를 수행할 수 있다.In addition, according to the second embodiment of the present invention, the
또한, 본 발명의 제2 실시예에 따르면, 제어부(204)는 제1 혼잡제어에 따라 중복 응답임계값을 소정의 값으로 재설정할 수 있다.Further, according to the second embodiment of the present invention, the
또한, 본 발명의 제2 실시예에 따르면, 제2 혼잡제어에 따라 송수신부(201)가 재전송한 패킷에 대한 긍정응답을 검증타이머(202)가 만료되기전에 수신하는 경우, 앞서 설명한 바와 같이 중복응답임계값, 느린출발임계점(Ssthresh) 및 혼잡윈도우(Cwnd) 중 하나 이상을 제2 재설정하여 저하된 TCP 성능을 복구할 수 있다. Further, according to the second embodiment of the present invention, when the acknowledgment response to the packet retransmitted by the
이와 같이, 본 발명의 실시예에 따른 혼잡제어 장치(100)의 각 구성부의 기능은 그 명칭에 불구하고 다양하게 세부화되거나 통합되어 구현될 수 있음은 본 발명의 기술적 사상에 비추어 당업자에게 자명하다. As described above, it is apparent to those skilled in the art in view of the technical spirit of the present invention that the functions of each component of the
도 3은 본 발명의 실시예에 따라 혼잡제어 장치가 혼잡제어를 수행하는 방법을 예시한 순서도이다.3 is a flowchart illustrating a method in which a congestion control device performs congestion control according to an embodiment of the present invention.
앞서, 도 2를 참조하여 설명한 바와 같이, 본 발명의 실시예에 따른 혼잡제어 장치(100)의 각 구성부는 다양하게 구현될 수 있으므로, 이하, 도 3을 참조하여 설명함에 있어, 혼잡제어 장치의 일례로 설명한 제1 장치(100)가 전체 주체인 것으로 설명한다.As described above with reference to FIG. 2, since each component of the
또한, 도 3을 참조하여 설명함에 있어, 앞서 도 2를 참조하여 설명한 부분과 중복되는 설명은 혼잡제어 방법의 요지를 명확하게 하기 위하여 상세한 설명은 생 략한다. In addition, in the description with reference to FIG. 3, the description overlapping with the above description with reference to FIG. 2 will not be described in detail in order to clarify the gist of the congestion control method.
도 3을 참조하면, 단계 S302에서 제1 장치(100)는 중복응답을 수신할 수 있다.Referring to FIG. 3, in operation S302, the
여기서, 중복응답은 패킷 재배치 또는 패킷 손실에 따라 수신측인 제2 장치(110)가 제1 장치(100)로 전송할 것일 수 있다.Here, the redundant response may be transmitted by the
이어서, 단계 S304에서 제1 장치(100)는 중복응답 수신에 따라 검증타이머를 구동할 수 있다.Subsequently, in operation S304, the
이점에 대해서는 앞서 도 2를 참조하여 제어부(204)의 제1 기능에서 설명하였다.This has been described above in the first function of the
이어서, 단계 S306에서 중복응답 수신의 개수가 중복응답임계값 이상인 경우, 제1 장치(100)는 혼잡이 발생한 것으로 판단하고, 단계 S314에서 제1 혼잡제어를 수행할 수 있다. Subsequently, when the number of duplicate response receptions is greater than or equal to the duplicate response threshold in step S306, the
이어서, 단계 S316 및 단계 S318에서 검증타이머(202)가 만료하기전에 제1 혼잡제어에 따라 재전송된 패킷의 긍정응답이 제1 장치(100)에 수신되는 경우, 제1 장치(100)는 패킷 재배치에 따라 제1 혼잡제어가 수행된것으로 검증하고, 단계 S320에서 저하된 TCP 성능을 복구할 수 있다.Subsequently, when the acknowledgment of the retransmitted packet according to the first congestion control is received by the
단계 S306, 단계 S314, 단계 S316, 단계 S318 및 단계 S320에 대해서는 앞서 도 2를 참조하여 제어부(204)의 제2 기능에서 상세히 설명하였다.Step S306, step S314, step S316, step S318, and step S320 have been described in detail in the second function of the
단계 S306 및 단계 S308에서 제1 장치(100)가 수신한 중복응답의 개수가 중복응답임계값 미만임에도 불구하고 검증타이머(202)가 만료한 경우, 제1 장치(100) 는 중복응담임계값이 잘못 설정된 것으로 판단할 수 있다. 이 경우, 단계 S312에서 제1 장치(100)는 잘못 설정된 중복응답임계값을 소정의 값으로 재설정하고, 재설정된 중복응답임계값만큼 지연하여 혼잡제어를 수행할 수 있다. If the
단계 S306, 단계 S308 및 단계 S312에 대해서는 앞서 도 2를 참조하여 제어부(204)의 기능 3에서 상세히 설명하였다.Step S306, step S308, and step S312 have been described in detail in the function 3 of the
지금까지 도 3을 참조하여 본 발명의 실시예에 따른 혼잡제어방법을 설명하였다. So far, the congestion control method according to the embodiment of the present invention has been described with reference to FIG. 3.
도 4 및 도 5는 앞서 도 2를 참조하여 설명한 제어부(204)의 제2 기능을 예시한 도면이다. 4 and 5 are diagrams illustrating a second function of the
도 3 및 도 4를 참조하면, 도3의 단계 S302에서 제1 장치(100)가 중복응답을 수신하는 경우(402), 단계 S304에서 구동타이머(202)를 구동할 수 있다. 3 and 4, when the
그리고, 제1 장치(100)가 중복응답임계값이 n개만큼 중복응답을 수신하는 경우(404), 단계 S314에서 제1 혼잡제어의 일례로 빠른 재전송 및 빠른 복구를 수행할 수 있다(406).When the
단계 S316 및 단계 S318에서 검증 타이머(202)가 만료되기전까지 제1 혼잡제어에 따른 재전송된 패킷의 긍정응답을 제1 장치(100)가 수신하는 경우(408), 제1 장치(100)는 제1 혼잡제어가 패킷 재배치에 따른 불필요한 혼잡제어로 판단하고(410)로 판단할 수 있다. 이 경우, 단계 S320에서 제1 장치(100)가 저하된 TCP 성능을 복구할 수 있음은 앞서 도2 및 도 3을 참조하여 설명하였다.When the
도 3 및 도 5를 참조하면, 단계 S316에서 제1 혼잡제어에 따른 재전송된 패킷의 긍정응답을 제1 장치(100)가 검정타이머(100)가 만료될때까지 수신 못하는 경우(502), 제1 장치(100)는 제1 혼잡제어가 패킷 손실과 같은 사유로 수행된 적절한 혼잡제어로 판단할 수 있다.3 and 5, when the
지금까지 도 3, 도 4 및 도 5를 참조하여 제어부(204)의 제2 기능을 상세히 설명하였다.So far, the second function of the
도 6은 본 발명의 실시예에 따른 시물레이션을 위한 토폴로지를 예시한 도면이며, 도 7 및 도 8은 각각의 라우터 사이의 링크에서 발생하는 전송속도 변화 빈도를 달리하여 시뮬레이션 한 결과이다. FIG. 6 is a diagram illustrating a topology for simulation according to an exemplary embodiment of the present invention, and FIGS. 7 and 8 are simulation results of varying transmission rate variations occurring in a link between routers.
토폴로지는 제1 장치(Source), 제2 장치(Destination), (R1), (R2) 4개의 노드와 2 종류의 링크로 이루어져 있다. (Link 1)은 10Mbps 대여폭, 1ms의 전파지연을 가지며, (Link 2)는 3Mbps 대여폭, 평균 50+200τms의 전파지연을 가진다. 이때 표준 편차는 (200τ)/3 ms 이며, τ는 0 부터 2 사이의 값으로 0.2 간격으로 설정하였다. 오류 모델을 적용하였으며, 이때 오류율은 0.001을 적용하였다.The topology consists of four nodes and two types of links: the first device (Source), the second device (Destination), (R1), and (R2). (Link 1) has a 10Mbps rental bandwidth and 1ms propagation delay, and (Link 2) has a 3Mbps rental bandwidth and average propagation delay of 50 + 200τms. At this time, the standard deviation was (200τ) / 3 ms, and τ was set at 0.2 interval with a value between 0 and 2. The error model is applied, and the error rate is 0.001.
설정한 네트워크 매개변수로 400 세그먼트 크기의 버퍼를 제1 장치(Source) 및제2 장치(Destination)에 설치하였으며, 이때 세그먼트의 크기는 1500bytes로 정의하였다. 혼잡 윈도우의 최대 크기는 500 세그먼트로 설정하였다. 패킷 재배치를 발생시키기 위해 값을 특정 시간간격으로 바꿔 주었는데 이때 그 간격은 50ms, 250ms의 크기로 시뮬레이션 하였으며, 10초에 전송을 시작하여 1010초에 전송을 종료하는 방법으로 총 1000초간 진행되었다. 패킷 재배치는 난수에 따라 발생하는데 이때 씨드 값(seed value)를 총 20가지 다른 값을 적용하여 시뮬레이션 하였다.As a configured network parameter, a buffer having a size of 400 segments is installed in the first device (Source) and the second device (Destination), and the size of the segment is defined as 1500 bytes. The maximum size of the congestion window was set to 500 segments. In order to generate a packet relocation, the value was changed to a specific time interval, and the interval was simulated with a size of 50 ms and 250 ms, and a total of 1000 seconds was performed by starting transmission at 10 seconds and ending transmission at 1010 seconds. Packet relocation occurs according to random numbers, and the seed value is simulated using a total of 20 different values.
도 7 및 도 8을 참조하면, Path delay factor(τ)는 두 라우터 사이 링크의 전파지연시간(평균 50+200τ ms, 표준 편차는 (200τ)/3 ms)을 결정하는 값으로 0부터 2사이의 값으로 0.2 간격으로 변화되는 것으로 가정하였다.7 and 8, the path delay factor (τ) is a value for determining the propagation delay time (
Y축인 Goodput은 제 1장치가 제 2장치에게 전송한 실질적인 데이터 량을 의미ㅎ나다. 이때 실질적인 데이터 량에서 재전송한 데이터의 크기는 포함되지 않을 수 있다.Goodput, which is the Y-axis, represents the actual amount of data transmitted by the first device to the second device. In this case, the size of the retransmitted data may not be included in the actual amount of data.
Switch rate는 단일링크로 구성된 토폴로지에서 임의로 패킷 재배치를 발생시키기 위해서 두 라우터 사이 링크의 전파지연을 변경시키는데, 이 때의 시간간격이 switch rate이다.The switch rate changes the propagation delay of the link between two routers in order to randomly rearrange packets in a single link topology. The time interval is the switch rate.
Error rate 는 토폴로지 상에서 단일 패킷 손실을 발생시키기 위한 값으로 0.1%의 확률로 패킷 Drop을 발생시킨다.The error rate is a value to generate a single packet loss in the topology and has a 0.1% chance of packet drop.
도 7 및 도 8을 참조하면, 본 발명의 실시예에 따른 혼잡제어방법이 종래 기술인 TCP-DAD(TCP Dynamically Adjusted Duptresh)에 비해 약 8% 높은 성능을 나타냄을 알 수 있다. 7 and 8, it can be seen that the congestion control method according to the embodiment of the present invention exhibits about 8% higher performance than the TCP-DAD (TCP Dynamically Adjusted Duptresh).
이러한 성능차이는 종래기술인 TCP-DAD의 경우 패킷 재배치가 발생할 때마다 중복응답임계값이 급격히 변하기 때문에 생긴다. 급격하게 증가한 중복 응답 임계값의 경우 재전송 타이머(202)가 만료되는 상황을 초래하기 쉽다. 그러나, 본 발명의 실시예에 따른 혼잡제어 방법은 패킷 재배치가 검증될 때까지 수신한 중복 응답의 수인 중복 응답 길이를 이용하기 때문에, 중복응답임계값이 점진적으로 증가하여 TCP-DAD에 비해 보다 안정적인 값을 갖는다. 또한 본 발명의 경우가 보다 빠르게 혼잡에 대응할 수 있어서 시뮬레이션 환경에서 보다 높은 성능을 나타내었다.This performance difference occurs in the TCP-DAD of the prior art because the duplicate response threshold changes rapidly every time packet relocation occurs. Rapidly increasing duplicate response thresholds are likely to result in a situation where the
본 발명의 실시예에 따른 혼잡제어 방법 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조등을 단독으로 또는 조합하여 포함할 수 있다. Congestion control method method according to an embodiment of the present invention can be implemented in the form of program instructions that can be executed by various computer means may be recorded on a computer readable medium. Computer-readable media may include, alone or in combination with the program instructions, data files, data structures, and the like.
컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media) 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 또한 상술한 매체는 프로그램 명령, 데이터 구조 등을 지정하는 신호를 전송하는 반송파를 포함하는 광 또는 금속선, 도파관 등의 전송 매체일 수도 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. The program instructions recorded on the computer readable medium may be those specially designed and constructed for the present invention, or may be known and available to those skilled in the computer software arts. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks. Hardware devices specially configured to store and execute program instructions such as magneto-optical media and ROM, RAM, flash memory and the like. In addition, the above-described medium may be a transmission medium such as an optical or metal wire, a waveguide, or the like including a carrier wave for transmitting a signal specifying a program command, a data structure, and the like. Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like.
상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The hardware device described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.It will be apparent to those skilled in the art that various modifications and variations can be made in the present invention without departing from the spirit or scope of the invention as defined in the appended claims. It will be understood that the invention may be varied and varied without departing from the scope of the invention.
도 1은 본 발명의 실시예에 따른 패킷 발신 장치와 수신 장치간의 연결을 예시한 도면.1 is a diagram illustrating a connection between a packet transmitter and a receiver according to an embodiment of the present invention.
도 2는 본 발명의 제1 실시예에 따른 제1 장치(100)의 구성을 예시한 블록도.2 is a block diagram illustrating a configuration of a
도 3은 본 발명의 실시예에 따라 혼잡제어 장치가 혼잡제어를 수행하는 방법을 예시한 순서도.3 is a flowchart illustrating a method for congestion control performed by a congestion control device according to an embodiment of the present invention.
도 4 및 도 5는 앞서 도 2를 참조하여 설명한 제어부(204)의 제2 기능을 예시한 도면.4 and 5 illustrate a second function of the
도 6은 본 발명의 실시예에 따른 시물레이션을 위한 토폴로지를 예시한 도면.6 illustrates a topology for simulation in accordance with an embodiment of the present invention.
도 7 및 도 8은 각각의 라우터 사이의 링크에서 발생하는 전송속도 변화 빈도를 달리하여 시뮬레이션 한 결과. 7 and 8 are simulation results by varying the frequency of the transmission rate change occurring in the link between each router.
<도면의 주요부분에 대한 부호의 설명><Description of the symbols for the main parts of the drawings>
100 : 제1 장치(Source)100: first device (Source)
201 : 송수신부 201: transceiver
202 : 검증타이머202: Verification timer
203 : 혼잡제어수행부203: congestion control unit
204 : 제어부204: control unit
Claims (16)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080093753A KR100952228B1 (en) | 2008-09-24 | 2008-09-24 | Appratus for TCP congestion control, a method thereof and recorded medium recorded with a program executing the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080093753A KR100952228B1 (en) | 2008-09-24 | 2008-09-24 | Appratus for TCP congestion control, a method thereof and recorded medium recorded with a program executing the same |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20100034553A true KR20100034553A (en) | 2010-04-01 |
KR100952228B1 KR100952228B1 (en) | 2010-04-09 |
Family
ID=42212684
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020080093753A KR100952228B1 (en) | 2008-09-24 | 2008-09-24 | Appratus for TCP congestion control, a method thereof and recorded medium recorded with a program executing the same |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100952228B1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101396785B1 (en) * | 2012-12-18 | 2014-05-20 | 인제대학교 산학협력단 | Method for performing tcp functions in network equipmment |
KR101694271B1 (en) * | 2015-07-07 | 2017-01-23 | 공주대학교 산학협력단 | Multipath Cubic for Congestion control |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6958997B1 (en) | 2000-07-05 | 2005-10-25 | Cisco Technology, Inc. | TCP fast recovery extended method and apparatus |
US7593338B2 (en) * | 2003-06-27 | 2009-09-22 | Samsung Electronics Co., Ltd. | Congestion control method and system for reducing a retransmission timeout count in a transmission control protocol |
-
2008
- 2008-09-24 KR KR1020080093753A patent/KR100952228B1/en not_active IP Right Cessation
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101396785B1 (en) * | 2012-12-18 | 2014-05-20 | 인제대학교 산학협력단 | Method for performing tcp functions in network equipmment |
KR101694271B1 (en) * | 2015-07-07 | 2017-01-23 | 공주대학교 산학협력단 | Multipath Cubic for Congestion control |
Also Published As
Publication number | Publication date |
---|---|
KR100952228B1 (en) | 2010-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2109954B1 (en) | Ack prioritization in wireless networks | |
US8418016B2 (en) | Communication system, communication device, and communication method | |
JP5816718B2 (en) | Communication apparatus, communication system, and data communication relay method | |
US8462624B2 (en) | Congestion management over lossy network connections | |
US9467390B2 (en) | Method and device for data transmission | |
JP4654926B2 (en) | COMMUNICATION SYSTEM, COMMUNICATION DEVICE, AND CONgestion Control Method Used In Them | |
CN101369877B (en) | Wireless transmission control protocol processing method and equipment | |
JP2006157918A (en) | High-throughput communications system, communications terminal, session relay device, and communication protocol | |
CN108234087B (en) | Data transmission method and sending end | |
WO2014069642A1 (en) | Communication device, transmission data output control method, and program for same | |
CN113765626B (en) | Data transmission method and device of mobile communication system | |
KR100912178B1 (en) | Congestion control method over wireless link | |
WO2016201904A1 (en) | Tcp-based data transmission method and device | |
KR100952228B1 (en) | Appratus for TCP congestion control, a method thereof and recorded medium recorded with a program executing the same | |
CN111092907B (en) | UDP (user Datagram protocol) -based data stream fast transmission method, system and medium | |
CN117544571A (en) | Safe and reliable transmission method and device for large message | |
JP2006504290A (en) | NACK protocol method and apparatus | |
Psaras et al. | The TCP minimum RTO revisited | |
US10009409B2 (en) | Retransmission control network node and related method | |
Sharma et al. | On the goodput of TCP NewReno in mobile networks | |
US9094281B2 (en) | Apparatus and method for identifying transmission control protocol (TCP) packet loss | |
JP2008199431A (en) | Communication device | |
KR100913897B1 (en) | Method for controlling congestion of TCP for reducing the number of retransmission timeout | |
West et al. | TCP enhancements for heterogeneous networks | |
JP6268027B2 (en) | COMMUNICATION SYSTEM, TRANSMISSION DEVICE, AND COMMUNICATION METHOD |
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 | ||
FPAY | Annual fee payment |
Payment date: 20130401 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20140402 Year of fee payment: 5 |
|
LAPS | Lapse due to unpaid annual fee |