KR20180013597A - Method for controlling a congestion window for multi path TCP in heterogeneous network - Google Patents
Method for controlling a congestion window for multi path TCP in heterogeneous network Download PDFInfo
- Publication number
- KR20180013597A KR20180013597A KR1020160097537A KR20160097537A KR20180013597A KR 20180013597 A KR20180013597 A KR 20180013597A KR 1020160097537 A KR1020160097537 A KR 1020160097537A KR 20160097537 A KR20160097537 A KR 20160097537A KR 20180013597 A KR20180013597 A KR 20180013597A
- Authority
- KR
- South Korea
- Prior art keywords
- mptcp
- congestion window
- congestion
- tcp
- throughput
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 26
- 230000005540 biological transmission Effects 0.000 claims abstract description 35
- 230000009467 reduction Effects 0.000 claims abstract description 17
- 230000003247 decreasing effect Effects 0.000 abstract description 4
- 238000011084 recovery Methods 0.000 abstract description 4
- 238000012360 testing method Methods 0.000 description 9
- 230000004044 response Effects 0.000 description 6
- 241000532784 Thelia <leafhopper> Species 0.000 description 5
- 230000001934 delay Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 2
- 238000009616 inductively coupled plasma Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000004043 responsiveness Effects 0.000 description 2
- 235000010384 tocopherol Nutrition 0.000 description 2
- 235000019731 tricalcium phosphate Nutrition 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 229910052709 silver Inorganic materials 0.000 description 1
- 239000004332 silver Substances 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
-
- 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/0823—Errors, e.g. transmission errors
- H04L43/0829—Packet loss
-
- 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/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0888—Throughput
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
-
- 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/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/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
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/14—Multichannel or multilink protocols
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
본 발명은 이종 망에서 다중 경로 전송제어프로토콜(TCP)의 혼잡 윈도우 제어 방법에 관한 것으로서, 그 혼잡 윈도우 제어 방법은 패킷 손실이 발생하지 않고 정상적으로 패킷의 송수신이 이루어지면 혼잡윈도우 크기를 증가하는 단계; 및 패킷의 손실이 발생하면 혼잡윈도우 크기를 감소시키는 단계를 포함하고, 혼잡윈도우의 크기를 감소시키는 감소인자는 각 서브 플로우의 처리율에 따라 달리 결정되며, 처리율이 높은 서브 플로우의 감소인자는 처리율이 낮은 서브 플로우의 감소인자보다 큰 값을 갖도록 결정되어 서브 플로우의 혼잡 윈도우 크기 감소가 작게 되는 것을 특징으로 한다.
본 발명에 의하면, 가장 혼잡이 적은 경로에서 실패로부터 회복시간을 줄임으로써 트래픽 이동을 향상시키고, 이종망에서 MPTCP의 처리율을 높일 수 있다. 또한 TCP와 MPTCP 프로토콜의 경쟁을 위해 분리된 병목 시나리오에서는 공정성이 개선되고, 공유된 병목 시나리오에서는 처리율이 향상된다A congestion window control method of a multi-path transmission control protocol (TCP) in a heterogeneous network, the congestion window control method comprising: increasing a congestion window size when packet transmission / reception is normally performed without packet loss; And decreasing the size of the congestion window when a packet loss occurs, wherein a reduction factor for reducing the size of the congestion window is determined differently according to the throughput of each sub-flow, and the reduction factor of the sub- It is determined to have a larger value than the decrease factor of the lower sub-flow, so that the decrease in the congestion window size of the sub-flow is reduced.
According to the present invention, it is possible to improve the traffic mobility by reducing the recovery time from failure in the path with the smallest congestion, and to increase the throughput of the MPTCP in the heterogeneous network. It also improves fairness in separate bottleneck scenarios for competing TCP and MPTCP protocols, and improves throughput in shared bottleneck scenarios
Description
본 발명은 전송제어 프로토콜(TCP)의 혼잡 제어에 관한 것으로서, 특히 이종 망에서 다중 경로 전송 프로토콜(TCP)의 혼잡 윈도우 제어 방법에 관한 것이다.The present invention relates to congestion control of a transmission control protocol (TCP), and more particularly, to a congestion window control method of a multipath transmission protocol (TCP) in a heterogeneous network.
전송 제어 프로토콜(Transmission Control Protocol; 이하 'TCP'라 한다)은 통신 네트워크에 적용되어 흐름 제어(flow control)와 혼잡 제어(congestion control)를 통해 패킷 전송을 보장해 주는 전송 프로토콜로서, 서비스의 신뢰성과 네트워크 적응성을 제공해 준다. 특히, TCP는 고속망에서 적은 지연(delay)과 높은 처리율(throughput)을 보일 뿐만 아니라 혼잡한 네트워크에서도 데이터 흐름을 조절해 끊김 없는 서비스가 가능하다. Transmission control protocol (hereinafter referred to as 'TCP') is a transmission protocol applied to a communication network to ensure packet transmission through flow control and congestion control, It provides adaptability. In particular, TCP not only shows low delay and high throughput in a high-speed network, but it also enables seamless service by controlling data flow in a congested network.
TCP는 흐름제어와 혼잡제어의 메카니즘을 이용하여 종단간(end-to-end)의 신뢰성 있는 전송을 보장한다. 흐름제어는 송신자(sender)가 수신자(receiver)로부터 advertised window 크기를 받은 후 그것보다는 적게 보냄으로써 네트워크상의 흐름을 조절하는 방법이고, 혼잡제어는 송신자가 네트워크 상황을 보고 스스로 흐름을 조절하는 방법이다.TCP uses a mechanism of flow control and congestion control to guarantee end-to-end reliable transmission. Flow control is a method by which the sender adjusts the flow on the network by receiving less advertised window size from the receiver, and congestion control is the method by which the sender controls the flow itself by looking at the network conditions.
하지만, TCP는 무선 환경과 같이 신뢰성이 부족한 네트워크에서는 스트리밍(streaming) 전송이 어려울 뿐만 아니라, 단일 TCP 경로(path)가 혼잡 네트워크를 이용하고 있을 때 그 혼잡 네트워크를 피하지 못하게 되는 문제점이 있다.However, TCP has a problem in that streaming transmission is difficult in a network with low reliability such as a wireless environment, and a congestion network can not be avoided when a single TCP path uses a congested network.
이러한 문제점을 해결하기 위하여, 다중경로 전송 제어 프로토콜(Multipath Transmission Control Protocol; 이하 'MPTCP'라 한다.)이 제안되었다.In order to solve this problem, a multipath transmission control protocol (MPTCP) has been proposed.
최근 이동 단말이 다중 홈(home) 기능을 갖게 됨으로써 다중 경로 전송이 가능하게 되었다. MPTCP는 여러 경로를 통해서 데이터를 전달할 수 있게 한다. TCP 프로토콜에서는 혼잡제어를 성공적으로 수행 함으로써 인터넷 기능을 효율적으로 사용할 수 있게 한다. 이러한 혼잡제어는 혼잡제어 알고리즘에 의해서 이루어졌으며, 전송율을 혼잡 정도와 링크의 용량에 따라서 능동적으로 제어할 수 있게 하였다. Recently, a mobile terminal has a multi-home function, which enables multi-path transmission. MPTCP allows data to be transmitted over multiple paths. In the TCP protocol, congestion control is successfully performed to enable efficient use of Internet functions. This congestion control is done by congestion control algorithm and it is able to actively control the rate according to congestion degree and link capacity.
TCP의 혼잡제어(congestion control)는 다수의 네트워크 사용자 간의 효율적인 자원 활용을 위해 반드시 필요한 기법이다. 혼잡제어는 혼잡이 우려되는 상황 근거가 수집되면, 수집된 상황 근거를 바탕으로 발신측 장치(source)의 전송 성능을 자발적으로 줄임으로써 혼잡 상황을 타개하고, 발신측 장치(source) 와 수신측 장치(destination) 간의 원활한 네트워크 자원 활용이 가능하도록 하는 기법이다. TCP congestion control is a necessary technique for efficient resource utilization among a large number of network users. The congestion control is a method for congestion control that automatically reduces the transmission performance of the source device based on the gathered context and collects the congestion situation when the context for the congestion is collected. it is possible to utilize network resources smoothly between destinations.
여기서, 혼잡이란 패킷(packet)을 다른 네트워크로 전달하는 역할을 하는 라우터(router)가 처리할 수 있는 능력보다 상회하는 패킷이 네트워크에 유입될 경우 일정 패킷들이 올바르게 처리되지 못하는 현상을 말한다.Here, congestion refers to a phenomenon in which certain packets are not correctly processed when a packet exceeding the capability of a router, which is responsible for delivering a packet to another network, is introduced into the network.
일반적으로, TCP는 신뢰성을 위하여 수신측 장치가 수신한 패킷에 대해 해당 패킷의 순서번호를 발신측 장치에 보내어 해당 패킷이 무사히 도착하였다는 것을 알려준다. 여기서, 만일 순서에 맞지 않은 패킷을 수신측 장치가 수신하게 되면, 수신하고자 하는 차례에 맞는 순서번호를 발신측 장치에게 다시 보내어 패킷이 정상적으로 도착하지 않았음을 알린다. 이 때, 발신측 장치가 수신한 응답의 순서번호가 동일할 경우 이를 중복 응답이라 하며, 이전에 수신한 순서 보다 더 큰 순서 번호를 수신할 경우 긍정 응답이라 한다. 패킷 손실이 발생하면 이러한 중복 응답이 다수 발생하기 때문에 기존의 TCP는 이러한 중복 응답을 상황 근거로 수집하여 혼잡제어(Congestion Control)를 수행한다.Generally, for reliability, TCP sends a sequence number of a packet received by a receiving-side apparatus to a calling apparatus to inform that the packet arrived safely. Here, if the receiving device receives a packet that does not match the order, it sends back a sequence number corresponding to the order to be received to the calling device to inform that the packet has not arrived normally. In this case, when the sequence number of the response received by the source apparatus is the same, it is referred to as a duplicate response, and when receiving a sequence number larger than the previously received sequence, it is referred to as an acknowledgment. In the case of packet loss, many of these duplicated responses occur. Therefore, conventional TCP collects the redundant responses based on the situation and performs congestion control.
다시 말해, 혼잡 제어는 네트워크 장비가 처리할 수 있는 능력 이상으로 입력되는 트래픽 혹은 특정 포트에 집중된 트래픽으로 인해 발생하는 혼잡 현상, 즉 장비가 계속해서 과부하 상태에 있는 것을 해결하는 기술을 말한다. TCP 혼잡 제어의 주목적은 송신 단말의 전송률을 직접 제어하여 혼잡으로 인해 손실된 데이터를 재전송하기 위함이다. TCP는 OSI 참조 모델의 4 계층에 속하는 프로토콜로서, 송신 단말과 수신 단말 사이의 노드의 수에 상관없이 종단간 동작한다. TCP는 송신 단말과 수신 단말을 양끝으로 하는 하나의 루프(loop)를 형성하여 이 루프에 수신측이 전송하는 확인(Acknowledge) 정보와 윈도우(Window) 그리고 타임아웃(timeout) 기능을 이용하여 혼잡 제어 메카니즘을 구현하고 있다.In other words, congestion control refers to a technique that resolves congestion that is caused by traffic entering a network device beyond the capabilities it can handle, or traffic concentrated on a particular port, that is, the device is continuously overloaded. The main purpose of TCP congestion control is to directly control the transmission rate of the transmitting terminal to retransmit the lost data due to congestion. TCP is a protocol belonging to the four layers of the OSI reference model, and operates end-to-end regardless of the number of nodes between the transmitting terminal and the receiving terminal. TCP forms a loop that connects the transmitting terminal and the receiving terminal at both ends and transmits the acknowledgment information, the window, and the timeout function transmitted from the receiving side to the loop, Mechanism.
보다 상세하게는 빠른 혼잡제어를 위해 하나의 순서 번호에 대하여 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 congestion control is performed by determining that the packet has been lost due to congestion in the network . When congestion control occurs, the transmission rate is halved for the session, and the performance is greatly reduced, and the packet determined to be lost is retransmitted.
일반적으로 TCP 혼잡제어 알고리즘은 패킷 손실(packet loss)이 발생하면 전송율을 낮춤으로써 혼잡을 감소시킨다. 다중 경로의 경우에는 패킷이 다른 대역폭, 지연 그리고 혼잡의 형태를 갖는 경로를 통해서 전달되기 때문에 공정성(fairness), 처리율(throughput) 등과 같은 혼잡제어의 고유 기능을 지키는 것 뿐만 아니라 트래픽 이동(traffic shifting), 부하 균형(load balancing) 등과 같이 다중 경로로 인해서 발생할 수 있는 새로운 특성들도 만족해야 한다. 따라서 다중경로 혼잡제어 알고리즘(MCCA : Multipath Congestion Control Algorithm)의 필요조건은 다음과 같다.In general, TCP congestion control algorithms reduce congestion by lowering the transmission rate when packet loss occurs. In the case of multipath, since packets are transmitted through paths having different bandwidths, delays and congestion patterns, not only the inherent functions of congestion control such as fairness and throughput but also traffic shifting, , Load balancing, and so on, must also be satisfied. Therefore, the requirements of Multipath Congestion Control Algorithm (MCCA) are as follows.
첫째, 처리율(throughput)이 향상 되어야 한다. MPTCP는 최소한 가장 좋은 경로로 전송되는 단일 경로 TCP보다 처리율이 높아야 한다. 둘째, 다른 TCP 경로에 피해가 없어야 한다.(no harm). MPTCP는 기존의 TCP에게 해를 주지 않는 방식으로 동작 해야 한다. 즉, 병목 링크에서는 단일 경로 TCP와 같이 동작을 해야 한다. 셋째, 혼잡의 균형이 있어야 한다. MPTCP는 가장 혼잡이 적은 경로를 사용해야 한다.First, throughput should be improved. MPTCP should have higher throughput than single-path TCP, which is transmitted at least the best route. Second, there should be no harm to other TCP routes (no harm). MPTCP should operate in a way that does not harm existing TCP. In other words, the bottleneck link should behave like single path TCP. Third, there must be a balance of congestion. MPTCP should use the least congested path.
이러한 필요조건 중에서 첫 번째 조건은 단일 경로 TCP와 비교했을 때 활용 가능한 경로를 효율적으로 사용해야 한다는 것을 나타내며, 두 번째와 세 번째는 공정성(fairness), 민감성(responsiveness) 그리고 MPTCP의 트래픽 이동(traffic shifting)을 보장하는 것이다.The first of these requirements indicates that the available path should be used efficiently compared to the single path TCP. The second and third are the fairness, the responsiveness, and the traffic shifting of MPTCP. .
이와 같은 필요조건을 지키기 위해서는 다중경로 혼잡제어 알고리즘(MCCA)은 모든 서브 플로우(sub flow)의 전송율을 유지하며, 설계 목표를 만족시킬 수 있는 수준으로 조절해야 한다. 다중경로 혼잡제어 알고리즘이 사용되는 MPTCP로는 Linked Increases Algorithm(LIA), weighted Vegas(wVegas) 및 Opportunistic Linked Increases Algorithm(OLIA) 등과 같은 다수의 MPTCP 프로토콜들이 있다.In order to meet such a requirement, the multi-path congestion control algorithm (MCCA) maintains the transmission rate of all sub-flows and must be adjusted to a level that can satisfy the design goal. There are many MPTCP protocols such as Linked Increase Algorithm (LIA), Weighted Vegas (wVegas), and Opportunistic Linked Increase Algorithm (OLIA).
종래의 MPTCP 프로토콜 가운데 본 발명에서 다루게 될 LIA 알고리즘은 매우 잘 동작하지만, 이 알고리즘은 기존의 단일 경로 TCP Reno에서 응답 패킷이 성공적으로 수신되었을 때만 고려되었으며, 패킷 손실이 발생한 경우에는 기존의 TCP Reno에서 변경된 것이 없다. 따라서 MPTCP에서 패킷 손실이 발생했을 때 MPTCP의 설계 목표를 만족하기 위해 알고리즘을 개선하는 것이 필요하다. Among the conventional MPTCP protocols, the LIA algorithm, which will be described in the present invention, works very well. However, this algorithm is considered only when a response packet is successfully received in the existing single-path TCP Reno. If packet loss occurs, Nothing has changed. Therefore, it is necessary to improve the algorithm to meet MPTCP design goals when packet loss occurs in MPTCP.
본 발명이 해결하고자 하는 과제는 MPTCP에서 패킷 손실이 발생했을 때 MPTCP 혼잡제어 알고리즘을 개선하기 위해, 패킷 손실이 발생하는 경우 가장 혼잡이 적은 경로에서 실패로부터 회복하는 시간을 줄임으로써 트래픽 이동을 향상시키고 이종망에서 MPTCP의 처리율을 향상시킬 수 있는, 다중 경로 전송제어 프로토콜(TCP)의 혼잡 윈도우 제어 방법을 제공하는 것이다. In order to improve the MPTCP congestion control algorithm when packet loss occurs in the MPTCP, the present invention improves the traffic movement by reducing the recovery time from the failure in the path with the least congestion when packet loss occurs And to provide a congestion window control method of a multipath transmission control protocol (TCP) capable of improving the throughput of MPTCP in heterogeneous networks.
상기 기술적 과제를 이루기 위한 본 발명에 의한 다중 경로 전송제어프로토콜 (TCP)의 혼잡 윈도우 제어 방법은, 다중경로 전송제어 프로토콜(MPTCP)의 혼잡 윈도우 제어 방법에 있어서 패킷 손실이 발생하지 않고 정상적으로 패킷의 송수신이 이루어지면 혼잡윈도우 크기를 증가하는 단계; 및 패킷의 손실이 발생하면 혼잡윈도우 크기를 감소시키는 단계를 포함하고, 상기 혼잡윈도우의 크기를 감소시키는 감소인자는 각 서브 플로우의 처리율에 따라 달리 결정되며, 처리율이 높은 서브 플로우의 감소인자는 처리율이 낮은 서브 플로우의 감소인자보다 큰 값을 갖도록 결정되어 서브 플로우의 혼잡 윈도우 크기 감소가 작게 되는 것을 특징으로 한다.According to another aspect of the present invention, there is provided a congestion window control method for a multi-path transmission control protocol (TCP) according to the present invention. The congestion window control method for a multipath transmission control protocol (MPTCP) Increasing the congestion window size; And decreasing a congestion window size when a packet loss occurs, wherein a reduction factor for reducing the size of the congestion window is determined differently according to the throughput of each sub-flow, and the reduction factor of the higher- Is determined to have a larger value than the reduction factor of the lower sub-flow, so that the decrease in the size of the congestion window of the sub-flow is reduced.
상기 감소인자는 각 서브 플로우의 RTT(round trip time)에 대한 혼잡 윈도우의 크기 비율에 따라 달리 결정되고, The reduction factor is determined differently according to the size ratio of the congestion window to the round trip time (RTT) of each sub-flow,
[수학식 5]&Quot; (5) "
MPTCP 접속의 평균 처리율을 획득하는 단계; 및 소정의 서브 플로우에서 발생한 패킷 손실에 대해 MPTCP의 평균처리율을 획득하여 상기 수학식 5에 의해 계산되는 단계를 포함하는 것을 특징으로 한다.Obtaining an average throughput of the MPTCP connection; And calculating the average throughput of the MPTCP with respect to a packet loss occurring in a predetermined sub-flow by using Equation (5).
상기 혼잡윈도우 크기는 현재의 혼잡윈도우 크기와 상기 계산된 감소인자를 곱하여 결정되는 것을 특징으로 한다.Wherein the congestion window size is determined by multiplying the current congestion window size by the computed reduction factor.
본 발명에 따른 이종 망에서 다중 경로 TCP 전송 혼잡제어 방법에 의하면, 가장 혼잡이 적은 경로에서 실패로부터 회복시간을 줄임으로써 트래픽 이동(traffic shift)을 향상시키고, 이종망(heterogeneous network)에서 MPTCP의 처리율을 높일 수 있다. According to the multi-path TCP transmission congestion control method in the heterogeneous network according to the present invention, it is possible to improve the traffic shift by reducing the recovery time from the failure in the path with the smallest congestion and to improve the traffic rate of the MPTCP in the heterogeneous network, .
그리고 기존의 LIA(Linked Increases Algorithm)에서 패킷 손실이 발생했을 때의 동작을 정의하고, TCP와 MPTCP 프로토콜의 경쟁을 위해 분리된 병목 시나리오에서는 공정성이 개선되고, 공유된 병목 시나리오에서는 처리율이 향상된다. In addition, the existing LIA (Linked Increment Algorithm) defines the behavior when packet loss occurs, improves fairness in separate bottleneck scenarios for TCP and MPTCP protocol competition, and improves throughput in shared bottleneck scenarios.
도 1은 본 발명에 의한 MPTCP의 혼잡윈도우 제어방법에 대한 일실시예를 흐름도로 나타낸 것이다.
도 2는 분리된 병목 시나리오를 설명하기 위한 병목 링크 시나리오를 나타내고 있다.
도 3은 단일경로 TCP 플로우와 다른 혼잡제어 알고리즘을 사용하는 MPTCP 접속의 처리율을 나타낸 것으로서, 두 개의 단일 TCP 플로우와 다양한 혼잡제어 알고리즘을 사용했을 때 전체 다중 경로의 처리율을 보여준다.
도 4는 공유된 병목 시나리오를 설명하기 위한 공유 링크 시나리오를 나타내고 있다.
도 5는 공유된 병목 시나리오에서 단일 경로 TCP와 다양한 MPTCP의 혼잡제어 알고리즘의 처리율을 비교한 것이다.FIG. 1 is a flow chart illustrating an embodiment of a congestion window control method for an MPTCP according to the present invention.
FIG. 2 shows a bottleneck link scenario for explaining the separated bottleneck scenario.
Figure 3 shows the throughput of MPTCP connections using a single path TCP flow and other congestion control algorithms and shows throughput of the entire multipath using two single TCP flows and various congestion control algorithms.
Figure 4 shows a shared link scenario to illustrate a shared bottleneck scenario.
5 compares the throughputs of the congestion control algorithms of the single path TCP and the various MPTCPs in the shared bottleneck scenario.
이하, 첨부된 도면을 참조로 본 발명의 바람직한 실시예를 상세히 설명하기로 한다. 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 바람직한 일 실시예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있음을 이해하여야 한다. Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. The embodiments described in the present specification and the configurations shown in the drawings are merely preferred embodiments of the present invention and are not intended to represent all of the technical ideas of the present invention and therefore various equivalents And variations are possible.
MPTCP는 TCP의 확장으로서 IETF(Internet Engineering Task Force)에서 표준화 되었다. MPTCP는 단일 TCP가 클라이언트 또는 서버에서 여러 개의 인터페이스를 사용할 수 있게 한다. MPTCP는 응용 프로그램을 수정하지 않으며, 기존의 인터넷에서 동작할 수 있다. MPTCP는 호스트 사이에 다른 인터페이스로 트래픽을 확산(spread)시키며, 단일 경로 TCP와 균형(fair)을 이루면서 혼잡이 발생하는 링크에서 다른 링크로 트래픽을 이동시킨다. MPTCP에서 중요한 것은 응용 계층(application layer)과 네트워크의 하위 호환성(backward compatibility)에 있다. MPTCP는 대부분의 응용계층에서 사용되는 소켓(socket) API를 보전(preserve)한다.MPTCP is an extension of TCP standardized by the Internet Engineering Task Force (IETF). MPTCP allows a single TCP to use multiple interfaces on a client or server. MPTCP does not modify applications and can operate on existing Internet. MPTCP spreads traffic to other interfaces between hosts and moves traffic from congested links to other links while balancing them with single-path TCP. What matters in MPTCP is the application layer and network backward compatibility. MPTCP preserve the socket API used by most application layers.
하나의 MPTCP 플로우(flow)는 둘 이상의 서브 플로우(sub-flow)를 가지며, 각각은 단일 TCP와 같이 동작한다. 접속이 시작되면 MPTCP 옵션이 SYN 세그먼트에 포함되어 목적지 노드가 MPTCP를 지원하는지를 확인할 수 있게 하며, 또한 접속을 식별하기 위한 토큰을 교환하기 위해서 사용된다. 참고로, TCP 접속을 처음 시작할 때 목적지 노드로 SYN 이라는 세그먼트를 전송하면서 접속을 시작한다. 이 때 MPTCP 접속이 가능하기 위해서는 source와 destination 모두 MPTCP 프로토콜을 지원해야 하므로 SYN 세그먼트에서 MPTCP 옵션을 포함하여 목적지로 보낸다.One MPTCP flow has two or more sub-flows, each operating as a single TCP. When the connection is initiated, the MPTCP option is included in the SYN segment, allowing the destination node to verify that it supports MPTCP, and is also used to exchange tokens to identify the connection. For reference, when starting a TCP connection for the first time, a segment called SYN is transmitted to the destination node to start the connection. In order to enable MPTCP access at this time, both the source and the destination must support the MPTCP protocol. Therefore, the MPTCP option is included in the SYN segment and is sent to the destination.
추가적인 TCP 서브 플로우(sub flow)가 MPTCP에 연관될 수 있으며 이 때 three-way handshake에서 교환되었던 토큰을 전달한다. MPTCP는 사용 가능한 자원을 최대로 활용하기 위해서 응용 계층의 데이터를 설정된 모든 서브 플로우로 분리한다. 다중경로 혼잡제어 알고리즘(MCCA)는 각 서브 플로우로 어느 정도의 트래픽이 전달될 것인가를 고려한다. 따라서 각 서브 플로우에 트래픽을 할당하는 것이 각 알고리즘의 효율을 결정한다. 상술한 바와 같이 전송제어 프로토콜(TCP)을 구현하기 위한 여러 종류의 혼잡제어 알고리즘이 제안되었으며, 그 중에서 LIA는 TCP New Reno의 확장이다. LIA는 혼잡 윈도우 크기(congestion window size)의 증가 인자(increase factor)에서 데이터 전송시 왕복에 걸리는 시간인RTT(Round Trip Time)를 고려함으로써 RTT의 불일치를 보상하였다. An additional TCP subflow may be associated with the MPTCP, which carries the token that was exchanged in the three-way handshake. MPTCP separates application layer data into all configured sub-flows to maximize the available resources. Multipath congestion control algorithm (MCCA) considers how much traffic is delivered to each sub-flow. Therefore, allocating traffic to each sub-flow determines the efficiency of each algorithm. As described above, various types of congestion control algorithms for implementing the transmission control protocol (TCP) have been proposed, among which LIA is an extension of TCP New Reno. The LIA compensates for the inconsistency of the RTT by considering the round trip time (RTT), which is the time taken for the round trip in the data transmission, from the increase factor of the congestion window size.
여기서, New Reno는 TCP의 한 프로토콜이며 이 프로토콜을 MPTCP에 적용해서 수정한 것이 LIA 이다. TCP의 흐름제어(flow control)은 링크의 상태가 나쁘면 전송 속도를 낮춰서 패킷 손실이 발생하지 않도록 하며, 다시 링크의 상태가 좋아지면 속도를 증가시키는 방식이 기본인데, RTT는 링크 상태를 알 수 있는 가장 기본적인 기준이다. 그런데 일반 TCP의 경우에는 flow가 하나이지만, MPTCP에서는 flow가 2개 이상이므로 두 링크 사이의 RTT가 달라질 수 있기 때문에 두 링크 사이의 전송 속도의 불일치가 발생할 수 있다. LIA는 이러한 점을 보완한 프로토콜이다Here, New Reno is a protocol of TCP, and LIA is modified by applying this protocol to MPTCP. TCP's flow control is based on the principle that if the state of the link is bad, the packet loss will not occur by lowering the transmission speed, and if the state of the link is further improved, the speed is increased. It is the most basic standard. However, in the case of normal TCP, there is one flow. In MPTCP, since there are two or more flows, the RTT between the two links may be different, so that a discrepancy in transmission speed may occur between the two links. LIA is a complement to this point
[수학식 1][Equation 1]
수학식 1에서 α는 MPTCP 알고리즘의 파라미터(parameter)이며, MPTCP 접속의 공격성을 나타낸다. 이 값은 수학식 2와 같이 계산된다.In Equation (1), a is a parameter of the MPTCP algorithm and indicates the aggressiveness of the MPTCP connection. This value is calculated as shown in Equation (2).
[수학식 2]&Quot; (2) "
α = α =
수학식 2에서 는 번째 서브 플로우의 혼잡 윈도우 크기이며, 는 번째 서브 플로우의 RTT를 나타낸다. 따라서 LIA는 최적의 자원 관리와 민감성(responsiveness) 사이의 균형을 이루는 것이다. 최근에 LIA의 변형으로 OLIA(Opportunistic Linked Increases Algorithm)가 제안되었으며, 이 알고리즘은 LIA에서 발생하는 “flappy” 현상을 방지할 수 있다. 참고로, MPTCP에서는 다수의 경로가 존재하기 때문에 여러 개의 경로가 좋은 상태이면 트래픽(traffic)이 임의로 아무 경로를 선택해서 전송될 수 있으며, 이러한 현상을 “floppiness”라고 한다. 따라서 이러한 현상은 가능한 제거되어야 한다. 즉 non-flappy가 보장되어야 한다.In Equation 2, The Th sub-flow, The Th sub-flow. Thus, the LIA is a balance between optimal resource management and responsiveness. Recently, OLIA (Opportunistic Linked Increasing Algorithm) has been proposed as a variant of LIA, and this algorithm can prevent "flappy" phenomenon in LIA. For reference, since there are many paths in MPTCP, if several paths are in good condition, traffic can be arbitrarily selected in any path, and this phenomenon is called "floppiness". Therefore, this phenomenon should be removed as much as possible. That is, non-flappy should be guaranteed.
각 서브 플로우 r의 ACK에 대해서 수학식 3과 같이 혼잡 윈도우 이 증가한다.For the ACK of each sub-flow r, a congestion window .
[수학식 3]&Quot; (3) "
여기서, here,
수학식 3에서 B는 서브 플로우의 집합으로써 시간 t에서 처리율 관점에서 최적의 경로를 나타내며, M은 시간 t에서 가장 큰 혼잡 윈도우 크기를 갖는 서브 플로우의 집합을 나타낸다. 은 MPTCP 접속의 전체 서브 플로우 수를 나타내며, 는 집합 B에는 속하지만 집합 M에는 속하지 않는 서브 플로우의 수를 나타내고, 는 반대로 집합 M에는 속하지만 집합B에는 속하지 않는 서브 프로우의 수를 나타낸다. 따라서 OLIA에서 링크의 상태는 좋지만 윈도우 크기가 작은 서브 플로우의 윈도우는 빠르게 증가하지만, 최대 윈도우 크기를 갖는 서브 플로우의 윈도우 크기는 그 보다 느리게 증가한다.In Equation (3), B represents an optimal path from the viewpoint of throughput at time t as a set of sub-flows, and M represents a set of sub-flows having the largest congestion window size at time t. Represents the total number of sub-flows of the MPTCP connection, Represents the number of sub-flows belonging to set B but not set M, Represents the number of subroutines belonging to the set M but not belonging to the set B, on the contrary. Therefore, the window of a subflow with a small window size increases rapidly but the window size of a subflow with a maximum window size increases more slowly.
wVegas는 TCP Vegas를 확장한 알고리즘이다. 참고로, Vegas는 TCP 프로토콜 가운데 하나이며 이를 MPTCP에 적용하기 위해서 확장한 알고리즘이 wVagas이다.wVegas is an algorithm that extends TCP Vegas. For reference, Vegas is one of the TCP protocols and wVagas is an algorithm that is extended to apply it to MPTCP.
이 알고리즘은 다중 경로 TCP(MPTCP)를 위한 지연 기반(delay-based) 알고리즘이며, 혼잡 신호로 패킷의 큐 지연시간을 이용한다. wVegas는 각 서브 플로우의 증가율 또는 감소율에 가중치(weight factor)를 할당하고 혼잡 정도에 따라서 이 값들을 조정한다. wVegas에서는 서브 플로우 r에 대해서 RTT마다 수학식 4와 같이 계산하여 에 의해 계수화된 임계 값(threshold)과 비교해서 혼잡 윈도우 크기를 증가 또는 감소시킨다.This algorithm is a delay-based algorithm for multipath TCP (MPTCP) and uses the queue delay time of the packet as a congestion signal. wVegas assigns a weight factor to the rate of increase or decrease of each sub-flow and adjusts these values according to the degree of congestion. wVegas calculates the sub-flow r for each RTT as shown in Equation 4 To increase or decrease the congestion window size compared to the threshold value that is digitized by the receiver.
[수학식 4]&Quot; (4) "
수학식 4에서 α와 β는 TCP Vegas에서 정의된 임계 값이다. 와 는 서브 플로우 r에 대한 최소 RTT와 현재의 RTT를 각각 나타내며, 은 기대 처리율(expected throughput)/전체 처리율(total throughput)의 비율이다.In Equation (4), α and β are threshold values defined in TCP Vegas. Wow Represents the minimum RTT and the current RTT for the sub-flow r, respectively, Is the ratio of expected throughput / total throughput.
도 1은 본 발명에 의한 MPTCP의 혼잡윈도우 제어방법에 대한 일실시예를 흐름도로 나타낸 것이다. 도 1을 참조하면, 이종망에서 다중경로 전송제어 프로토콜(MPTCP) 전송 혼잡제어 알고리즘을 이용하여 데이터를 전송한다.(S100 단계) 전송되는 패킷에 손실이 발생하는지와 패킷 데이터의 송수신이 정상적인지 체크한다.(S110 단계) 패킷 손실이 발생하지 않고 정상적으로 패킷의 송수신이 이루어지면 혼잡윈도우 크기를 증가한다.(S120 단계) 하지만, 패킷의 손실이 발생하면 혼잡윈도우 크기를 감소시킨다.(S130 단계) FIG. 1 is a flow chart illustrating an embodiment of a congestion window control method for an MPTCP according to the present invention. 1, data is transmitted using a multi-path transmission control protocol (MPTCP) transmission congestion control algorithm in a heterogeneous network (step S100). In step S100, whether a loss occurs in a packet to be transmitted and whether transmission / reception of packet data is normal (Step S110) If the packet transmission / reception is normally performed without packet loss, the congestion window size is increased (Step S120). However, if packet loss occurs, the congestion window size is decreased (Step S130)
이 때, 상기 혼잡윈도우의 크기를 감소시키는 감소인자는 각 서브 플로우의 처리율에 따라 달리 결정한다. 즉, 처리율이 높은 서브 플로우의 감소인자는 처리율이 낮은 서브 플로우의 감소인자보다 큰 값을 갖도록 결정함으로써 서브 플로우의 혼잡 윈도우 크기 감소가 작게 되도록 한다. 상기 감소인자는 각 서브 플로우의 RTT(round trip time)에 대한 혼잡 윈도우의 크기 비율에 따라 달리 결정한다. At this time, the reduction factor for reducing the size of the congestion window is determined differently depending on the throughput of each sub-flow. That is, the decrease factor of the subflow having a high throughput rate is determined to have a value larger than the decreasing factor of the subflow having a low throughput, so that the decrease in the congestion window size of the subflow is made small. The reduction factor is determined according to the size ratio of the congestion window to the RTT (round trip time) of each sub-flow.
상기 감소인자 결정은 MPTCP 접속의 평균 처리율을 획득하고, 소정의 서브 플로우에서 발생한 패킷 손실에 대해 MPTCP의 평균처리율을 획득하여 하기의 수학식 5에 의해 계산할 수 있다. 이 때, 상기 혼잡윈도우 크기는 현재의 혼잡윈도우 크기와 상기 계산된 감소인자를 곱하여 결정되는 것이 바람직하다. The reduction factor determination may be performed by obtaining the average throughput of the MPTCP connection and obtaining the average throughput of the MPTCP with respect to the packet loss occurring in the predetermined subflow, In this case, the congestion window size is preferably determined by multiplying the current congestion window size by the calculated reduction factor.
본 발명에 의한 MPTCP의 혼잡윈도우 제어방법을 보다 상세히 설명하기로 한다. 본 발명에 의한 MPTCP의 혼잡윈도우 제어방법은 패킷 손실이 발생했을 때의 혼잡 윈도우 크기의 변화와 MCCA의 세 번째 필요 조건인 혼잡 균형에 중점을 둔다. 이는 MPTCP가 가장 혼잡이 낮은 링크를 이용해야 한다는 것을 의미하며, 혼잡이 많은 경로의 부하를 감소시킨다. 이렇게 하기 위해서 본 발명에서는 다음과 같은 기술적 사상에 의해서 혼잡윈도우 제어방법을 제시한다. 즉, 상태가 좋은 서브 플로우에서 혼잡이 발생한 이후에 다시 대역폭을 회복하기 위한 시간은 상태가 좋지 않은 서브 플로우에서 대역폭을 회복하는 시간보다 짧다는 것이다. 따라서 표준 TCP에서 사용하는 감소 인자(decrease factor) 0.5 대신에 각 서브 플로우에서 처리율이 어느 정도인지에 따라서 감소 인자가 결정되어야 한다. 따라서 본 발명에서는 일실시예로 감소인자 β를 다음과 같이 정의한다.The congestion window control method of the MPTCP according to the present invention will be described in more detail. The congestion window control method of the MPTCP according to the present invention focuses on the change of the congestion window size when the packet loss occurs and the congestion balance which is the third necessary condition of the MCCA. This implies that MPTCP should use the least congested link, which reduces the load on the congested path. To this end, the present invention proposes a congestion window control method according to the following technical idea. In other words, the time to recover bandwidth again after congestion occurs in a good subflow is shorter than the time to recover the bandwidth in a bad subflow. Therefore, instead of the decrease factor 0.5 used in the standard TCP, the reduction factor should be determined according to the throughput in each sub-flow. Therefore, in the present invention, the reduction factor? Is defined as follows in one embodiment.
[수학식 5]&Quot; (5) "
수학식 5에서 = 는 혼잡 윈도우 크기 와 RTT 값 를 갖는 서브 플로우의 RTT에 대한 혼잡 윈도우 크기의 비율이며, 는 n개의 서브 플로우를 갖는 MPTCP 접속의 혼잡 윈도우 크기에 대한 RTT의 평균 비율이다. 그리고 수학식 6과 같이 LIA이 적용되었다.In Equation (5) = Congestion window size And the RTT value Having The ratio of the congestion window size to the RTT of the subflow, Is the average ratio of the RTT to the congestion window size of the MPTCP connection with n sub-flows. And LIA is applied as shown in Equation (6).
[수학식 6]&Quot; (6) "
= =
β의 범위에서 최소 값은 0.5가 사용되며, 이 값은 단일 전송인 경우 또는 낮은 비율의 경로에 혼잡된 경로에 낮은 비율에 적용된다. β 계수의 중간 값은 처리율이 평균보다 높은 경로는 대역폭을 다른 경로보다 더 빨리 복구를 할 것이라는 것을 보여준다. 결과적으로 혼잡이 가장 적은 경로에서 많은 트래픽을 전송하도록 한다. 그러나 이러한 경로도 혼잡이 발생하면 전송률을 감소시켜야 한다. β 계수의 높은 값인 0.8은 전송률을 낮춰야 한다는 것을 의미한다.The minimum value in the range of β is used as 0.5, which applies to the low rate for a single transmission or to a congested path on a low rate path. The median of the β coefficient shows that the path with higher throughput than the average will recover the bandwidth faster than the other path. As a result, traffic is transmitted in the least congested path. However, this path also has to reduce the transmission rate if congestion occurs. A high β value of 0.8 means that the transmission rate should be lowered.
본 발명에 의한 MPTCP 혼잡 윈도우 제어 방법을 이용하여 ALIA에 대한 실시예로 MPTCP를 지원하는 리눅스 커널에서 ALIA를 구현 하였다. 기본적으로 ALIA는 LIA를 확장한 형태이다. 본 발명에 의한 MPTCP의 혼잡 윈도우 제어 방법에서는 패킷 손실이 발생해서 윈도우 크기를 감소할 때 b계수를 적용하는 것이며, 혼잡 회피(congestion avoidance) 단계에서 가법적 증가(additive increase) 뿐만 아니라 빠른 재전송과 복구는 LIA와 동일하다. 본 발명에서 중요한 부분은 MPTCP 접속의 평균 처리율과 혼잡된 서브 플로우 사이의 비율이다. 여기서, MPTCP 접속의 평균 처리율이란 MPTCP에는 다수의 경로가 존재하는데, 이 경로상의 트래픽을 평균한 값을 말하고, 혼잡된 서브플로우란 여러 경로 중에서 혼잡이 발생해서 처리율 또는 전송율이 떨어지는 flow를 나타낸다.ALIA is implemented in a Linux kernel supporting MPTCP as an embodiment of ALIA using the MPTCP congestion window control method according to the present invention. ALIA is basically an extension of LIA. In the congestion window control method of MPTCP according to the present invention, the b coefficient is applied when the window size is reduced due to packet loss. In the congestion avoidance step, not only the additive increase but also the fast retransmission and recovery Is the same as LIA. An important part of the present invention is the ratio between the average throughput of the MPTCP connection and the congested sub-flows. Here, the average throughput of the MPTCP connection refers to a value obtained by averaging the traffic on the MPTCP, and a congested subflow represents a flow in which the throughput or the transmission rate drops due to congestion among the various paths.
이 비율은 전체 MPTCP 접속의 평균 처리율을 ACK가 발생할 때마다 자주 갱신함으로써 다음과 같이 쉽게 계산이 된다.This ratio is easily calculated by updating the average throughput of the entire MPTCP connection every time an ACK occurs, as follows:
경로 r에 대한 각 ACK에 대해서, LIA에서와 같이 α 계수를 갱신하고, 수학식 6에 따라 혼잡 윈도우 크기 를 증가시킨다. MPTCP 접속의 평균 처리율을 갱신한다. 경로 r에서 발생한 패킷 손실에 대해서 MPTCP의 평균 처리율을 알아내고, 수학식 5에 의해서 β 계수를 계산한다. 혼잡 윈도우 크기 를 β* 만큼 감소시킨다.For each ACK for path r, the alpha coefficient is updated as in the LIA and the congestion window size < RTI ID = 0.0 > . Update the average throughput of the MPTCP connection. The average throughput of the MPTCP is calculated for the packet loss occurring at the path r, and the beta coefficient is calculated by the equation (5). Congestion window size Lt; RTI ID = .
한편, MPTCP의 목적을 만족하기 위한 이종 네트워크에서 ALIA의 처리율과 트래픽 이동(traffic shifting)에 대한 성능평가를 실시하고 다른 MPTCP 혼잡제어 알고리즘(MCCA)와 비교하였다. 본 발명에 의한 MPTCP 혼잡윈도우 제어 방법을 이용한 ALIA와 LIA, OLIA 및 wVegas와 같은 다른 MPTCP 알고리즘을 리눅스 커널에서 구현하였다. 그리고 테스트 베드를 구성하여 실험실 환경에서 각각의 알고리즘을 수행하였다. 테스트 베드에는 프로토콜이 구현된 호스트 뿐만 아니라 라우터, 스위치 등을 포함한다. 이 외에도 다양한 RTT 지연을 발생시키기 위해서 dummynet을 실행할 수 있는 소프트웨어 브리지를 사용하였다. 트래픽을 발생하고 측정하기 위해서 서버와 클라이언트에서 iperf가 사용되었다.On the other hand, performance evaluation of ALIA throughput and traffic shifting is performed in heterogeneous networks to meet the purpose of MPTCP and compared with other MPTCP Congestion Control Algorithm (MCCA). Other MPTCP algorithms such as ALIA, LIA, OLIA, and wVegas using the MPTCP congestion window control method according to the present invention are implemented in the Linux kernel. Then, a test bed was constructed and each algorithm was performed in a laboratory environment. The testbed includes routers, switches, etc., as well as hosts that implement the protocol. In addition, we use a software bridge that can run dummynet to generate various RTT delays. Iperf was used on servers and clients to generate and measure traffic.
도 2은 분리된 병목 시나리오를 설명하기 위한 병목 링크 시나리오를 나타내고 있다. 도 2를 참조하면, 첫 번째 테스트 베드에서 MCCA에서 요구되는 공정성(fairness) 관점에서 ALIA 성능이 평가되었으며, 다른 MCCA, 특히 ALIA의 원래 알고리즘인 LIA의 성능과 비교하였다. 테스트 베드의 토폴로지(topology)는 대칭 형태이며, A1-B1과 A2-B2는 병목링크로써 각 링크는 하나의 MPTCP 플로우와 공유된다. 알고리즘의 두 경로간 트래픽 이동 효과를 관찰하기 위해서 두 경로의 부하를 다르게 하였다. FIG. 2 shows a bottleneck link scenario for explaining the separated bottleneck scenario. Referring to FIG. 2, the ALIA performance was evaluated in terms of fairness required in the MCCA in the first test bed and compared with the performance of another MCCA, especially the original algorithm of ALIA, LIA. The topology of the test bed is symmetric, and A1-B1 and A2-B2 are bottleneck links, with each link shared with one MPTCP flow. In order to observe the traffic movement effect between the two paths of the algorithm, the load of the two paths is different.
따라서 첫 번째 경로 A1-B1의 링크 용량은 100Mbps로 하고, 두 번째 경로 A2-B2의 용량은 테스트 경우에 따라서 30, 50, 75 그리고 100 Mbps로 변화를 주어 실험을 하였다. 링크의 용량을 조절하기 위해서 두 번째 경로에 dummynet bridge를 사용하여 원하는 용량으로 설정하였다. 단일 경로 TCP와 MPTCP는 동시에 시작하고 종료를 하였으며, 각 접속의 처리율(Mb/s)을 관찰하였다. Therefore, the link capacity of the first path A1-B1 is set to 100 Mbps, and the capacity of the second path A2-B2 is changed to 30, 50, 75 and 100 Mbps according to the test case. To adjust the link capacity, we set the desired capacity using the dummynet bridge on the second path. Single path TCP and MPTCP started and ended simultaneously, and observed the throughput (Mb / s) of each connection.
도 3은 단일경로 TCP 플로우와 다른 혼잡제어 알고리즘을 사용하는 MPTCP 접속의 처리율을 나타낸 것으로서, 두 개의 단일 TCP 플로우와 다양한 혼잡제어 알고리즘을 사용했을 때 전체 다중 경로의 처리율을 보여준다. 도 3을 참조하면, ALIA를 사용하는 다중 경로 접속은 다른 알고리즘을 사용할 때와 비교했을 때 조금 낮은 처리율을 나타내는 것을 알 수 있으며, 특히 3가지 경우의 링크 용량에서 LIA 보다 낮은 처리율을 보여주고 있다. 그러나 MPTCP의 처리율은 다른 단일 경로 TCP 보다는 높은 것을 알 수 있으며, 이것은 ALIA가 다른 MPTCP 알고리즘과 비교했을 때 두 개의 단일 경로 TCP와 친화적(friendly)이라는 것을 알 수 있다. Figure 3 shows the throughput of MPTCP connections using a single path TCP flow and other congestion control algorithms and shows throughput of the entire multipath using two single TCP flows and various congestion control algorithms. Referring to FIG. 3, it can be seen that the multipath access using ALIA exhibits a slightly lower throughput as compared with the use of other algorithms, and in particular, the throughput of the link capacity of three cases is lower than that of the LIA. However, we can see that the throughput of MPTCP is higher than that of other single-path TCPs, and it can be seen that ALIA is friendly to two single-path TCPs compared to other MPTCP algorithms.
이 결과는 표 1에서 계산된 공정성 지표(fairness index)에서 다시 확인할 수 있다. 표 1은 다른 혼잡제어 알고리즘을 사용했을 경우의 공정성 지수를 비교한 것이다. 표1을 참조하면, ALIA를 사용했을 때의 공정성 지표는 모든 테스트의 경우에서 가장 높은 것을 알 수 있다. 평균 사용자 처리율에 대한 공정성 지수를 계산하기 위해서 수학식 7과 같이 Jain's Fairness Index(JFI)을 사용하였다.This result can be confirmed again in the fairness index calculated in Table 1. Table 1 compares fairness indices for different congestion control algorithms. As shown in Table 1, the fairness index using ALIA is the highest in all tests. The Jain's Fairness Index (JFI) was used to calculate the fairness index for the average user throughput as shown in Equation (7).
[수학식 7]&Quot; (7) "
수학식 7 에서 은 번째 접속의 처리율이며, n은 경쟁하는 접속의 수이다.In Equation (7) silver Th connection, and n is the number of competing connections.
[표 1][Table 1]
도 4는 공유된 병목 시나리오를 설명하기 위한 공유 링크 시나리오를 나타내고 있다. 도 4를 참조하면, 두 개의 서브 플로우를 갖는 MPTCP와 단일 경로 TCP Cubic이 병목 링크를 공유하도록 테스트 베드가 구성되었다. 이 시나리오에서는 첫 번째 MPTCP의 목표인 단일 경로 TCP보다 처리율이 향상되는지에 대해서 실험을 하였다. 이 테스트 베드에서는 모든 링크는 100Mbps의 대역폭을 갖도록 설정되었으며, dummynet bridge를 사용해서 다양한 지연이 발생하도록 하였다. Figure 4 shows a shared link scenario to illustrate a shared bottleneck scenario. Referring to FIG. 4, a test bed is configured such that MPTCP having two sub-flows and single-path TCP Cubic share a bottleneck link. In this scenario, we tested whether the throughput of the first MPTCP is better than that of the single-path TCP. In this test bed, all links are set to have a bandwidth of 100 Mbps, and various delays are generated using the dummynet bridge.
특히 이 시나리오에서는 첫 번째 MPTCP 서브 플로우와 단일 경로 TCP 플로우의 지연을 동일하게 하였으며, 100ms의 좋은 상태를 갖도록 하였다. 그러나 두 번째 서브 플로우는 50, 100, 150 그리고 200ms의 4가지 지연 조건을 갖도록 설정하였다. 이러한 설정을 하기 위해서 dummynet bridge의 IP address filter(ipfw) 기능을 사용하였다. 이 시나리오에서도 단일 경로 TCP와 MPTCP 플로우는 동시에 시작하고 동시에 종료되었다.Especially, in this scenario, the delay of the first MPTCP subflow and the single path TCP flow are made equal and 100 ms is good. However, the second sub-flow is set to have four delay conditions of 50, 100, 150 and 200 ms. To do this, I used the IP address filter (ipfw) function of the dummynet bridge. In this scenario, single-path TCP and MPTCP flows were started and concurrently started at the same time.
도 5는 공유된 병목 시나리오에서 단일 경로 TCP와 다양한 MPTCP의 혼잡제어 알고리즘의 처리율을 비교한 것이다. 일반적으로 이종 네트워크 환경은 MPTCP에 큰 영향을 미친다. 지연이 100ms 미만의 좋은 네트워크 환경에서는 MPTCP의 성능은 TCP보다 높지만 지연이 커 질수록 처리율이 낮아지거나 단일 경로 TCP 보다 낮아지는 경우도 있다. 그 이유는 수신 버퍼에서 수신되는 패킷의 재정렬(reordering)을 처리하는 시간이 크게 증가하기 때문이다. 지연이 다른 것과 같이 다른 특성을 갖는 경로를 통해서 들어오는 패킷의 재정렬을 처리하는데 걸리는 시간 지연을 극복하는 것은 쉽지 않다. 다중 경로 TCP에서 패킷이 순서에 맞지 않게 수신되면 처리율을 크게 떨어뜨린다. 5 compares the throughputs of the congestion control algorithms of the single path TCP and the various MPTCPs in the shared bottleneck scenario. In general, heterogeneous network environments have a large impact on MPTCP. In a good network environment with a delay of less than 100 ms, the performance of MPTCP is higher than that of TCP, but the higher the delay, the lower the throughput or the lower the single-path TCP. This is because the time for processing the reordering of packets received in the receiving buffer is greatly increased. It is not easy to overcome the time delay involved in reordering incoming packets through paths with different characteristics, such as different delays. In multipath TCP, if the packets are received out of order, the throughput is greatly reduced.
그러나 새로운 β 계수를 사용함으로써 ALIA는 혼잡이 적은 링크를 사용하게 함으로써 지연이 낮을 때나 높을 때 처리율을 높게 유지할 수 있도록 한다. 따라서 ALIA는 다른 알고리즘보다 효율적으로 혼잡이 적은 경로를 사용할 수 있게 함으로써 처리율을 향상시키는 것을 알 수 있다.However, by using the new β factor, ALIA makes it possible to keep the throughput high when the delay is low or high, by using less congested links. Thus, it can be seen that ALIA improves the throughput by making it possible to use less congested paths more efficiently than other algorithms.
본 발명은 기존 MPTCP 알고리즘인 LIA를 확장한 개념인 Adaptive Linked Increase Algorithm(ALIA) 혼잡제어 알고리즘을 제안하였다. ALIA의 성능을 평가하기 위해서 리눅스에서 프로토콜을 구현하였으며, 구현된 프로토콜로 테스트 베드를 구성하여 처리율(throughput)과 공정성(fairness)을 평가하였다. ALIA 성능은 TCP와 MPTCP 프로토콜의 경쟁을 위해서 분리된 병목 링크 시나리오와 공유된 병목 시나리오에서 다른 알고리즘과 비교되었다. 테스트 결과 본 발명을 이용한 ALIA 알고리즘은 분리된 병목 시나리오에서 공정성이 개선되고, 공유된 병목 시나리오에서는 처리율이 향상되는 것을 알 수 있었다.The present invention proposes an Adaptive Linked Increase Algorithm (ALIA) congestion control algorithm, which is an extension of the existing MPTCP algorithm, LIA. In order to evaluate the performance of ALIA, a protocol was implemented in Linux and a throughput and fairness were evaluated by constructing a test bed with the implemented protocol. ALIA performance was compared with other algorithms in separate bottleneck link scenarios and shared bottleneck scenarios in order to compete with TCP and MPTCP protocols. The test results show that the ALIA algorithm using the present invention improves the fairness in the separate bottleneck scenario and improves the throughput in the shared bottleneck scenario.
본 발명은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터(정보 처리 기능을 갖는 장치를 모두 포함한다)가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 장치의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등이 있다. The present invention can be embodied as a computer readable code on a computer-readable recording medium (including all devices having an information processing function). A computer-readable recording medium includes all kinds of recording apparatuses in which data that can be read by a computer system is stored. Examples of computer-readable recording devices include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage, and the like.
본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다. While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is evident that many alternatives, modifications and variations will be apparent to those skilled in the art. Accordingly, the true scope of the present invention should be determined by the technical idea of the appended claims.
Claims (4)
패킷 손실이 발생하지 않고 정상적으로 패킷의 송수신이 이루어지면 혼잡윈도우 크기를 증가하는 단계; 및
패킷의 손실이 발생하면 혼잡윈도우 크기를 감소시키는 단계를 포함하고,
상기 혼잡윈도우의 크기를 감소시키는 감소인자는
각 서브 플로우의 처리율에 따라 달리 결정되며, 처리율이 높은 서브 플로우의 감소인자는 처리율이 낮은 서브 플로우의 감소인자보다 큰 값을 갖도록 결정되어 서브 플로우의 혼잡 윈도우 크기 감소가 작게 되는 것을 특징으로 하는 다중경로 전송제어 프로토콜(MPTCP)의 혼잡 윈도우 제어 방법.A congestion window control method of a multipath transmission control protocol (MPTCP)
Increasing the congestion window size if packet transmission / reception is normally performed without packet loss; And
Reducing the congestion window size if packet loss occurs,
The reduction factor that reduces the size of the congestion window is
And the reduction factor of the subflow with a high throughput is determined to be larger than the factor of decrease of the subflow with a low throughput so that the decrease in the size of the congestion window of the subflow becomes small. Congestion Window Control Method of Path Transmission Control Protocol (MPTCP).
각 서브 플로우의 RTT(round trip time)에 대한 혼잡 윈도우의 크기 비율에 따라 달리 결정되는 것을 특징으로 하는 다중경로 전송제어 프로토콜(MPTCP)의 혼잡 윈도우 제어 방법.2. The method of claim 1,
Wherein the congestion window size is determined differently according to the size ratio of the congestion window to the round trip time (RTT) of each sub-flow.
[수학식 5]
MPTCP 접속의 평균 처리율을 획득하는 단계; 및
소정의 서브 플로우에서 발생한 패킷 손실에 대해 MPTCP의 평균처리율을 획득하여 상기 수학식 5에 의해 계산되는 단계를 포함하는 것을 특징으로 하는 다중경로 전송제어 프로토콜(MPTCP)의 혼잡 윈도우 제어 방법.3. The method of claim 2, wherein the reduction factor is
&Quot; (5) "
Obtaining an average throughput of the MPTCP connection; And
And obtaining the average throughput of the MPTCP for a packet loss occurring in a predetermined sub-flow, and calculating the average throughput of the MPTCP according to Equation (5).
현재의 혼잡윈도우 크기와 상기 계산된 감소인자를 곱하여 결정되는 것을 특징으로 하는 다중경로 전송제어 프로토콜(MPTCP)의 혼잡 윈도우 제어 방법.
4. The method of claim 3, wherein the congestion window size is
And multiplying the current congestion window size by the computed reduction factor. ≪ RTI ID = 0.0 > 8. < / RTI >
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020160097537A KR101849302B1 (en) | 2016-07-29 | 2016-07-29 | Method for controlling a congestion window for multi path TCP in heterogeneous network |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020160097537A KR101849302B1 (en) | 2016-07-29 | 2016-07-29 | Method for controlling a congestion window for multi path TCP in heterogeneous network |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| KR20180013597A true KR20180013597A (en) | 2018-02-07 |
| KR101849302B1 KR101849302B1 (en) | 2018-04-16 |
Family
ID=61204582
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020160097537A Active KR101849302B1 (en) | 2016-07-29 | 2016-07-29 | Method for controlling a congestion window for multi path TCP in heterogeneous network |
Country Status (1)
| Country | Link |
|---|---|
| KR (1) | KR101849302B1 (en) |
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2020045797A1 (en) * | 2018-08-31 | 2020-03-05 | 연세대학교 산학협력단 | Device and method for controlling congestion window for multipath transmission control protocol |
| KR102093351B1 (en) | 2018-11-20 | 2020-03-25 | 울산과학기술원 | Method and apparatus for scheduling of packets to multiple-interfaces |
| KR20200092250A (en) * | 2019-01-24 | 2020-08-03 | 고려대학교 산학협력단 | System for multipath packet scheduling method therefor |
| KR102471228B1 (en) * | 2022-04-04 | 2022-11-28 | 서울대학교산학협력단 | Method and apparatus for dynamic adjustment of aggressiveness parameters for packet flow in the network |
| CN115643212A (en) * | 2022-10-17 | 2023-01-24 | 联想(北京)有限公司 | Method and device for processing data in user space and electronic equipment |
| US20230216804A1 (en) * | 2022-01-04 | 2023-07-06 | Vmware, Inc. | Efficient mechanism for the transmission of multipath duplicate packets |
| CN117880183A (en) * | 2023-12-30 | 2024-04-12 | 国网湖北省电力有限公司信息通信公司 | A datagram congestion control method for unreliable multipath transmission based on DCCP |
-
2016
- 2016-07-29 KR KR1020160097537A patent/KR101849302B1/en active Active
Cited By (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2020045797A1 (en) * | 2018-08-31 | 2020-03-05 | 연세대학교 산학협력단 | Device and method for controlling congestion window for multipath transmission control protocol |
| KR20200025590A (en) * | 2018-08-31 | 2020-03-10 | 연세대학교 산학협력단 | Congestion window control method for multipath transmission control protocol |
| KR102093351B1 (en) | 2018-11-20 | 2020-03-25 | 울산과학기술원 | Method and apparatus for scheduling of packets to multiple-interfaces |
| KR20200092250A (en) * | 2019-01-24 | 2020-08-03 | 고려대학교 산학협력단 | System for multipath packet scheduling method therefor |
| US20230216804A1 (en) * | 2022-01-04 | 2023-07-06 | Vmware, Inc. | Efficient mechanism for the transmission of multipath duplicate packets |
| KR102471228B1 (en) * | 2022-04-04 | 2022-11-28 | 서울대학교산학협력단 | Method and apparatus for dynamic adjustment of aggressiveness parameters for packet flow in the network |
| CN115643212A (en) * | 2022-10-17 | 2023-01-24 | 联想(北京)有限公司 | Method and device for processing data in user space and electronic equipment |
| CN117880183A (en) * | 2023-12-30 | 2024-04-12 | 国网湖北省电力有限公司信息通信公司 | A datagram congestion control method for unreliable multipath transmission based on DCCP |
Also Published As
| Publication number | Publication date |
|---|---|
| KR101849302B1 (en) | 2018-04-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR101849302B1 (en) | Method for controlling a congestion window for multi path TCP in heterogeneous network | |
| JP7556579B2 (en) | Packet transmission system and method | |
| EP3278514B1 (en) | Data transmission | |
| US8149704B2 (en) | Communication apparatus and data communication method | |
| US8943206B2 (en) | Network bandwidth detection and distribution | |
| Tian et al. | TCP in wireless environments: problems and solutions | |
| US9088511B2 (en) | Multi-hop error recovery | |
| CN101895466B (en) | Method for reducing influence of data packet disorder on SCTP multipath transmission | |
| JP6473688B2 (en) | Data stream splitting to increase data transfer rate | |
| EP3255847A1 (en) | Transmission control protocol data packet transmission method, transmission device and system | |
| Sinky et al. | Proactive multipath TCP for seamless handoff in heterogeneous wireless access networks | |
| WO2016162501A1 (en) | Method and system for the scheduling of packets in a bundling scenario based on tcp tunnels and native tcp information | |
| Alheid et al. | An analysis of the impact of out-of-order recovery algorithms on MPTCP throughput | |
| JP2021505042A (en) | Real-time transport network Systems and methods for accelerating or decelerating data transport networks based on congestion conditions | |
| Nguyen et al. | Evaluation of multipath TCP load sharing with coupled congestion control option in heterogeneous networks | |
| TWI757887B (en) | Method, network controller, and computer program product for facilitating multipath transmission of a data stream from a sender to a receiver | |
| Halepoto et al. | Management of buffer space for the concurrent multipath transfer over dissimilar paths | |
| Kokku et al. | A multipath background network architecture | |
| Ayar et al. | A transparent reordering robust TCP proxy to allow per-packet load balancing in core networks | |
| CN116389363A (en) | Congestion control for networks using deployable INT | |
| US20140369189A1 (en) | Method of controlling packet transmission in network system and network system transmitting packet using pseudo-tcp agent | |
| Bhat et al. | MPTCP combining congestion window adaptation and packet scheduling for multi-homed device | |
| JP2012134907A (en) | Tcp transfer apparatus and program thereof | |
| Prokopiak et al. | Application aware concurrent multipath transmission in hybrid wireless networks | |
| Karlsson et al. | The interaction between tcp reordering mechanisms and multi-path forwarding in wireless mesh networks |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A201 | Request for examination | ||
| PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20160729 |
|
| PA0201 | Request for examination | ||
| E902 | Notification of reason for refusal | ||
| PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20171211 Patent event code: PE09021S01D |
|
| PG1501 | Laying open of application | ||
| E701 | Decision to grant or registration of patent right | ||
| PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20180327 |
|
| GRNT | Written decision to grant | ||
| PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20180410 Patent event code: PR07011E01D |
|
| PR1002 | Payment of registration fee |
Payment date: 20180411 End annual number: 3 Start annual number: 1 |
|
| PG1601 | Publication of registration | ||
| PR1001 | Payment of annual fee |
Payment date: 20210401 Start annual number: 4 End annual number: 4 |
|
| PR1001 | Payment of annual fee |
Payment date: 20230321 Start annual number: 6 End annual number: 6 |
|
| PR1001 | Payment of annual fee |
Payment date: 20240326 Start annual number: 7 End annual number: 7 |
|
| PR1001 | Payment of annual fee |
Payment date: 20250331 Start annual number: 8 End annual number: 8 |