Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
A METHOD FOR CONTROLLING CONGESTION IN COMMUNICATION SYSTEM
Document Type and Number:
WIPO Patent Application WO/2018/135938
Kind Code:
A1
Abstract:
The present invention relates to a method for controlling congestion in communication system. The method includes the steps of computing value of sliding window, swnd, determining whether 3 duplicated acknowledgments are received, and determining whether slow-start threshold is greater than congestion window size, cwnd. A fraction of increase is then computed based on an agility factor and a window-correlated weighting function if 3 duplicated acknowledgments are not received and the slow-start threshold is less than or equal to the cwnd. The cwnd is increased by the fraction of increase, number of packets that are sent without acknowledgment is counted and the swnd is re-computed. Data is sent based on last recorded cwnd if swnd is greater than zero.

Inventors:
OTHMAN MOHAMED (MY)
A ALRSHAH MOHAMED (MY)
Application Number:
PCT/MY2018/050001
Publication Date:
July 26, 2018
Filing Date:
January 18, 2018
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
UNIV PUTRA MALAYSIA (MY)
International Classes:
H04L12/803; H04L12/841
Foreign References:
US20150188830A12015-07-02
US20140112134A12014-04-24
US20130044598A12013-02-21
US20150043339A12015-02-12
Other References:
MOHAMED A. ALRSHAH ET AL.: "Agile-SD: A Linux-based TCP Congestion Control Algorithm for Supporting High-speed and Short-distance Networks", ARXIV:1601.05908, 22 January 2016 (2016-01-22), XP080679803
Attorney, Agent or Firm:
H A RASHID, Ahmad Fadzlee (MY)
Download PDF:
Claims:
CLAIMS:

1. A method for controlling congestion in communication system is characterised by the steps of:

a) initialising cwnd, inflight and ssthresh, wherein cwnd is a congestion window size, and wherein inflight is a number of packets that are sent without acknowledgments, and wherein ssthresh is a slow-start threshold;

b) computing value of sliding window, swnd;

c) determining whether all acknowledgments are received if timeout has not reached and swnd is less than or equal to zero;

d) determining whether 3 duplicated acknowledgments are received if not all acknowledgements are received;

e) determining whether the ssthresh is greater than the cwnd if 3 duplicated acknowledgments are not received;

f) computing a fraction of increase based on λ and WWF if the ssthresh is less than or equal to cwnd, wherein λ is an agility factor and wherein WWF is a window-correlated weighting function; g) increasing the cwnd by the fraction of increase;

h) counting inflight;

i) computing swnd;

j) determining whether there is data to be sent if swnd greater than zero; k) sending data based on last recorded cwnd; and

I) determining whether all acknowledgments are received if timeout has not reached.

2. The method as claimed in claim 1 , wherein if the timeout has reached and swnd is less than or equal to zero, the steps include:

a) initialising cwnd as intial window size;

b) counting inflight;

c) computing swnd;

d) determining whether swnd is greater than zero;

e) determining whether there is data to be sent if swnd greater than zero; f) sending data based on last recorded cwnd; and

g) determining whether all acknowledgments are received if timeout has not reached.

3. The method as claimed in claim 1 , wherein if 3 duplicated acknowledgments are received, the steps include:

a) setting current cwnd as the maximum recorded congestion window prior to previous loss;

b) decreasing the cwnd by multiplying the current cwnd with multiplicative decrease factor of the computer platform; c) computing the ssthresh by deducting 1 from a new cwnd; d) setting the new cwnd as a degraded congestion window after previous loss;

e) counting inflight;

f) computing swnd;

g) determining whether swnd is greater than zero;

h) determining whether there is data to be sent if swnd is greater than zero;

i) sending data based on last recorded cwnd; and

j) determining whether all acknowledgments are received if timeout has not reached.

4. The method as claimed in claim 1 , wherein the fraction of increase based on λ and WWF is a fraction of the product of λ and WWF over the current cwnd.

5. The method as claimed in claim 4, wherein λ is computed based on equation below: wherein max represents the upper limit of the agility factor, min represents the lower limit of the agility factor, g pcurrent represents the difference between the maximum recorded congestion window prior to previous loss, cwndloss and cwnd, and gaptotal represents the difference between cwndloss and a degraded congestion window prior to previous loss, cwnddegraaded.

6. The method as claimed in claim 5, wherein the upper limit of the agility factor, max is computed based on following equation:

*max = [8-91 - 7β, 1 wherein β represents multiplicative decrease factor of the computer platform.

7. The method as claimed in claim 4, wherein WWF is computed based on equation below: wherein RTTmax represents the maximum recorded round trip time and RTTcurrent represents current round trip time.

The method as claimed in claim 1 , wherein if there is no data to be sent, the step includes determining whether all acknowledgments are received if timeout has not reached.

Description:
A METHOD FOR CONTROLLING CONGESTION IN COMMUNICATION SYSTEM

FIELD OF INVENTION

The present invention relates to a method for controlling congestion in a communication system. More particularly, the present invention relates to a method for controlling congestion in short-distance and long-distance high-speed network communication system.

BACKGROUND OF THE INVENTION

A network system is said to be congested when a network node in the network system receives more data than it can handle. A congested network system may cause queuing delay, packet loss and consequently reduces the bandwidth utilisation and negatively affects the quality of service. In order to reduce congestion in the network system, many types of congestion control algorithm or CCA such as Agile-SD, Compound transmission control protocol and Cubic transmission control protocol are used.

The agile short-distance transmission control protocol or also known as Agile-SD algorithm is an example of the CCA which implements agility factor mechanism. The agile-SD algorithm is designed for high-speed and short-distance network. Recent studies (Alrshah et al., 2015) found that the agile-SD algorithm increases congestion window size or cwnd by adding a value of agility factor divided by the cwnd when a new acknowledgment is received. The agility factor is used to mitigate the impact of loss degradation on the overall performance of the transmission control protocol, TCP. The agility factor shortens the time of epoch needed by a cwnd to increase from cwnd degraded to cwnd loss or from cwnd degraded to the maximum allowed cwnd. The cwnd degraded represents cwnd that is degraded after the last loss while the cwnd loss represents the maximum recorded cwnd prior to last loss. To increase bandwidth utilisation, the agility factor speeds up the growth of the cwnd when the current cwnd is far from the cwnd loss but slows down the growth of the cwnd when the current cwnd is nearing the cwnd loss .

However, the agile-SD algorithm can only be implemented in a short- distance network. In a long-distance network, the long distance and long buffering time cause a long round trip time. In addition, a high-bandwidth-delay product in a long-distance network requires the TCP to expand its cwnd to a large number of packets in order to utilise the bandwidth.

Additionally, a TCP-based application is required to deal with both short- and long-distance network at the same time without the need of human manual tuning. Moreover, the TCP is not properly adapted to the high variability of delay and buffer size, which often makes TCP either unnecessarily conservative or severely aggressive in utilising available bandwidth. Therefore, there is a need for a method that can improve the utilisation of available bandwidth in the short- and long-distance network at the same time without the need of human manual tuning.

SUMMARY OF INVENTION

The present invention relates to a method for controlling congestion in communication system. Initially, a computer platform initialises cwnd which represents congestion window size, inflight which represents a number of packets that are sent without acknowledgments and ssthresh which represents a slow-start threshold. Value of sliding window, swnd is then computed. The computer platform determines whether all acknowledgments are received if timeout has not reached and swnd is less than or equal to zero. The computer platform then determines whether 3 duplicated acknowledgments are received if not all acknowledgements are received. If 3 duplicated acknowledgments are not received, the computer platform determines whether the ssthresh is greater than the cwnd. Thereon, if the ssthresh is less than or equal to cwnd, a fraction of increase based on λ and WWF is computed, wherein λ is an agility factor and wherein WWF is a window-correlated weighting function. The cwnd is then increase by the fraction of increase, inflight is counted, and swnd is computed. The computer platform determines whether there is data to be sent if swnd greater than zero and sends data based on last recorded cwnd. Finally, the computer platform determines whether all acknowledgments are received if timeout has not reached.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate embodiments of the invention and, together with the description, serve to explain the principles of the invention. FIG. 1 illustrates a flowchart of a method for controlling congestion in a communication network according to an embodiment of the present invention.

DESCRIPTION OF THE PREFERRED EMBODIMENT

A preferred embodiment of the present invention will be described herein below with reference to the accompanying drawings. In the following description, well-known functions or constructions are not described in detail since they would obscure the description with unnecessary detail. A computer platform generally transmits packets in a network where there is a risk of data traffic congestion resulting from transmission of one or more packets. The computer platform can be any device that can transmits and receives packets in a network such as a computer, a mobile device and a server. In the present invention, the computer platform controls congestion in the communication system by applying a method for controlling congestion which combines loss-based and delay-based approaches to work adaptively over both short-distance and long-distance network. The window size is adjusted based on network condition in order to increase or decrease the rate of transmitted packets. As a result, the computer platform achieves higher bandwidth utilisation compared to other congestion control algorithms.

FIG. 1 illustrates a flowchart of the method for controlling congestion in communication systems according to an embodiment of the present invention. Initially, the computer platform initialises the congestion window size referred as cwnd, the number of packets that are sent without acknowledgments referred as inflight, and a slow-start threshold referred as ssthresh as in step 1010. The computer platform sets cwnd with the value of initial window size referred as IW and sets inflight as 0. The computer platform transmits a first packet and starts a timer that estimates when the packet will be acknowledged. The computer platform then computes value of sliding window referred as swnd as in step 1020 by deducting inflight from cwnd.

Thereon, the computer platform determines whether swnd is greater than zero as in decision 1030. If the swnd is less than or equal to zero, the computer platform determines whether the timeout has reached as in decision 1150. If the timeout has reached, the computer platform re-initialises cwnd to IW and counts the inflight as in steps 1160 and 1800, respectively. If the timeout has not reached, the computer platform determines whether the computer platform has received all acknowledgments as in decision 1250. An acknowledgment is a message sent by a receiving computer platform back to a sending computer platform after a successful receipt of a data packet of a specific size. If any of the acknowledgments are received, the computer platform determines whether it has received at least 3 duplicated acknowledgments as in decision 1350. The 3 duplicated acknowledgments received by the computer platform indicate that packet loss is detected in the communication system. The 3 duplicated acknowledgements can also be replaced by any other messages which indicate that packet loss is detected in the communication system.

If the computer platform receives 3 duplicated acknowledgments as in decision 1350, the computer platform sets the current cwnd as cwnd loss which represents the maximum recorded congestion window prior to previous loss as in step 1400. The computer platform then decreases the current cwnd to a new cwnd as in step 1410. As the new cwnd is the product of a multiplication of current cwnd with the multiplicative decrease factor of the computer platform, wherein the value of multiplicative decrease factor of the computer platform is between 0 and 1 , the new cwnd is less than current cwnd.

Thereon, the computer platform re-computes the ssthresh as in step 1420 by deducting 1 from the new cwnd. The re-computed ssthresh is used to determine whether the network is in slow-start phase. The computer platform sets the new cwnd as cwnd degraded as in step 1430, wherein cwnd degraded represents a degraded congestion window just after previous loss. The computer platform then counts the inflight as in step 1800 and re-executes from step 1020 which is to compute the swnd. The computer platform re-computes the swnd only after the computer platform receives another acknowledgement. If the computer platform does not receive 3 duplicated acknowledgments as in decision 1350, the computer platform compares the ssthresh with the cwnd as in decision 1550. The ssthresh can either be the initial ssthresh or the re-computed ssthresh from step 1420. If the ssthresh is greater than cwnd which indicates that the network is in slow-start phase, the computer platform increases the cwnd by one as in step 1600. The computer platform then counts the inflight as in step 1800 and re- executes from step 1020 which is to compute the swnd. The computer platform re- computes the swnd only after the computer platform receives another acknowledgement.

On the other hand, if the ssthresh is less than or equal to cwnd as in decision 1550, the computer platform computes a fraction of increase based on an agility factor, λ and a window-correlated weighting function, WWF as in step 1700. The λ is computed based on the equation below:

(^max 9 a Vcurrent ,

λ = max I . ~~~~ > A r,

9 a Vtotal wherein max represents the upper limit of the agility factor, min represents the lower limit of the agility factor, gap current represents the difference between cwnd loss and cwnd, and gap total represents the difference between cwnd loss and cwnd degraded . The max is computed based on the following equation:

*max = [8-91 - 7β1, wherein β represents the multiplicative decrease factor of the computer platform.

On the other hand, the WWF is computed based on the equation below:

WWF = I j L TmaX x cwnd,

J current wherein RTT max represents the maximum recorded round trip time and RTT current represents the current round trip time. The WWF is a delay-based and round trip time independent function for long-distance network which increases the bandwidth utilisation. WWF relies on a variation of round trip time to measure utilisation ratio, wherein the variation of round trip time can be used to quantify the level of congestion.

The fraction of increase is computed based on the equation below: λ X WWF

fraction of increase = -— .

cwnd Thereafter, the computer platform increases the cwnd by the fraction of increase as in step 1710. The new cwnd is a sum of the current cwnd and the fraction of increase as in equation below: λ X WWF

cwnd r , PW = cwnd +

cwnd

The computer platform then counts the inflight as in step 1800 and re-executes from step 1020 which is to compute the swnd. The computer platform re-computes the swnd only after the computer platform receives another acknowledgement. If the swnd is greater than zero as in decision 1030, the computer platform determines whether there is data to be sent as in decision 1040. If there is data to be sent, the computer platform sends data based on the last recorded cwnd as in step 1050, wherein the last recorded cwnd can either be the IW or the new cwnd. The computer platform then re-executes from decision 1150, which is to determine whether timeout has reached. On the other hand, if there is no data to be sent, the computer platform directly re-executes from decision 1150, which is to determine whether timeout has reached. If the timeout has not reached as in decision 1150, the computer platform re-determines whether all acknowledgments are received as in decision 1250. The process ends once all acknowledgements are received which indicates that all data has successfully been sent.

While embodiments of the invention have been illustrated and described, it is not intended that these embodiments illustrate and describe all possible forms of the invention. Rather, the words used in the specifications are words of description rather than limitation and various changes may be made without departing from the scope of the invention.

REFERENCE:

[ 1 ] Alrshah, M.A., Othman, M., AN, B. and Hanapi, Z.M., 2015. Agile-SD: A Linux- based TCP congestion control algorithm for supporting high-speed and short- distance networks. Journal of Network and Computer Applications, 55, pp. 181-190.