An Improved Congestion Control Algorithm based on SCPS-TP Protocol

mainly in Vegas agreement by predicting the real-time changes of RTT is to adjust the congestion window, is likely to lead to network to link data congestion has not taken place, but because in the process of reverse echo is sure that the information congestion resulting in RTT value, detection mechanism will default to forward congestion and reduce the congestion window. In order to avoid this situation, RTT acquisition is modified to solve the problem that the forward congestion window may be reduced due to the reverse link congestion, so that the congestion window can be adjusted more accurately, and the network prediction mechanism is added to carry out joint adjustment scheme for the congestion window. Multiple round trip delays are stored at the sending end, and the network information obtained by the original sendRTT is further classified and analyzed through the analysis and processing of the delay by the algorithm, so as to obtain the status of the link more accurately and make accurate adjustments to the congestion window.


Introduction
In recent years, communication technology has entered the stage of rapid development, and there are more and more requirements for real-time, convenience and coverage of communication. With the development of network technology, network information transmission has become the main way of information transmission nowadays. Everything is connected, which also makes the rapid development of Internet in recent years. And about the application of the Internet (such as website, visual/audio playback, file transfer, the network interaction, etc.) as well as increasing the vast network of user groups, to the use of traditional wired and wireless transmission network is close to saturation, to continue the study of ground network mining has can't meet the demand of such a large user group, in which does not include aviation communication needs, maritime communication needs, and remote areas, and special areas such as common communication cannot cover area user [1], therefore, under the circumstances of communication technology popularization, it is particularly important to solve the above problem. Satellite communication, which is not restricted by terrain, has a wide coverage, an ultra-long communication distance and a flexible network mode, etc., which has become a research hotspot to improve current network deficiencies [2].

Research Status
As the transmission layer for sending management and data packets, scps-tp is also a protocol layer studied by researchers in satellite protocol. SCPS-TP adopts Vegas congestion window management algorithm completely different from TCP in forward data transmission. The congestion control mechanism is divided into three stages, the stage of slow start, congestion avoidance, congestion control, in the slow start stage in every time RTT time interval in a way that the growth of the congestion window, this kind of growth mode can effectively reduce growth too fast and slow startup window leads to exceed the threshold question soon. In the congestion avoidance phase, two threshold values α and values β (generally 1 and 3) are defined, whose meaning is the number of packets in queued state during the current network transmission [7,8].Vegas in the congestion avoidance state adjusts according to the network load condition to keep the size of the congestion window near the network bandwidth delay product and effectively avoid congestion. After connection is established, Vegas first needs to obtain an optimal round-trip delay BaseRTT, which is generally to obtain the round-trip delay of the first sent packet, and then adjust the congestion window once at every other round-trip delay based on the difference between the current predicted network environment and the ideal network environment. After obtaining real-time RTT, the link sending rate at this time and the current ideal sending rate should be calculated, and the number of additional packets cached in the current data link should be calculated and compared with α and β.In the multi-hop satellite communication, the above physical quantities need to be calculated again after the new route planning of the satellite link. Finally, the congestion control mechanism is used to adjust the congestion window so as to control the number of data packets in the network cache and obtain higher bandwidth performance.
In using the above method to adjust the congestion window, Vegas congestion control algorithm is based on the value of the diff for reference, through α and β values to compare with the diff to adjust window, therefore, alpha and beta value plays an important role on the change of the congestion window, and the change of the diff is on the basis of the size of the RTT calculation, therefore, alpha and beta in the forward link and RTT get all became the research hot spot.
In the improvement of α and β, there have been many related studies so far. Such as earlier Srijith Vegas -A algorithm, this algorithm is to change original Vegas to alpha and beta from fixed value of 1 and 3 into can be as the network can automatically adjust, through within A certain range of alpha and beta value adjustment can make the congestion window in the congestion avoidance phase fluctuations have A larger space, without order soon dropped or beyond the congestion window stable state, in this form to improve the utilization rate of network transmission; ProVegas algorithm based on vargas -A proposed by oryx. On the basis of vargas-A, dynamic adjustment after diff>β.For BaseRTT, pan chengsheng et al. proposed Vegas_Sat algorithm. The core idea of this algorithm is to track the transmission path of packets in satellite communication, then calculate the distance of packets from

Introduction of Scps-tp Protocol
The high bit error rate in satellite communication makes the traditional data transmission protocol no longer applicable, so scps-tp has formulated a transmission protocol suitable for deep space communication according to this characteristic. It is based on TCP for the satellite network communication process in the high error rate, long delay, bandwidth asymmetry and other issues to modify and improve the protocol. Since the satellite transmission is wireless, scps-tp also supports the broadcast transmission mode of multiple connections and the processing of packets, as well as the priority setting processing mechanism of multi-access connections. Compared with TCP and UDP for ground transmission, scps-tp has made the following improvements: it has added the recording function of round trip delay of data transmission, and used round trip delay to control congestion window change instead of the original error control; The congestion window is adjusted once every other round trip delay; Added the serial number function of protection echo; Added optional passive confirmation SNACK; The data packet header is compressed to reduce the link pressure. In the congestion avoidance phase, a new congestion control algorithm is adopted, and link congestion is also used as a control mechanism to reduce the probability of packet loss [9,10].

SCPS-TP Congestion Control Algorithm Improvement
Vegas algorithm is used as the congestion control algorithm in scps-tp protocol. High bit error rate and asymmetric bandwidth make it difficult to improve the efficiency of satellite communication. The growth of congestion window in Vegas algorithm has great volatility, which leads to link congestion and packet loss. In view of the unstable phenomenon of congestion window caused by Vegas algorithm, Vegas is improved based on the round-trip delay prediction algorithm, and the new algorithm is named Vegas_improve.

New RTT Mechanism
Vegas protocol is different from the traditional Reno protocol in two aspects. One is that the Reno algorithm relies on the triple confirmation method for data retransmission when packet loss occurs. The longer packet retransmission process makes the data retransmission performance lower than the retransmission mechanism of the Vegas algorithm. The second is the control mechanism of the congestion window. In Reno algorithm, whether the congestion window needs to be adjusted downward is determined by whether there is congestion, and the way to determine whether there is congestion is whether there is data loss in the link. In this way, when packet loss does not occur, the congestion window will increase continuously, and the growth of bottom line makes Reno more competitive in the link. But it also causes the congestion window to show a zigzag pattern of periodic fluctuations. Vegas algorithm adjusts the congestion window based on the change of RTT and controls the change of congestion window by the difference between the optimal transmission volume and the actual transmission volume. Compared with the Reno algorithm, using RTT to control the congestion window can make the data transfer in the link more stable without the congestion window periodic increase and decrease. However, this adjustment method also shows that the adjustment of congestion window is not only affected by congestion and packet loss in the forward transmission process, but also affected by these problems in the reverse confirmation transmission process. In the process of reverse confirmation of packet return, because the asymmetry of satellite link can sometimes reach 1000:1, there will also be link congestion and packet loss, resulting in the increase of transmission delay in the process of reverse data return. Since Vegas's congestion control mechanism is based on changes in RTT, the increase in transmission delay in the reverse link is also considered to be congestion in the forward link, thus reducing the congestion window to reduce the congestion condition. The end result is to reduce the congestion window and reduce the link utilization without congestion.
In view of the above situation, one-way transmission delay sendRTT is used in Vegas_improve algorithm instead of RTT as the mechanism to control the congestion window. The principle of this mechanism is to add a timestamp above the confirmation frame. When the receiving end receives the data segment of the sending end, it will process it. When the confirmation frame is to be sent back to the sending end, the current time will be recorded in the confirmation frame and sent back to the sending end. When the sender receives the acknowledgement frame sent back, it will not only confirm and process the confirmation frame in a normal way, but also extract the time in the confirmation frame. By processing the difference between the time frame and the time when sending, the data segment is only processed during the sending process and on the satellite, thus shielding the adverse interference caused by the reverse delay.

Slow Start Improvement Mechanism
One of the peculiarities of satellite communication is the long round trip transmission delay, especially in high orbit satellites. In the initial state of the slow startup phase, the initial value of a congestion window is 1 for exponential growth and increases every other RTT. There will be an observation period in the two RTT phases, and the congestion window will not change. In this growth mode, when the round-trip delay is long, it will be in the slow start stage for a long time, and sometimes the communication time is short. This results in the end of information transmission when Vegas algorithm has not finished the slow start stage, and the link bandwidth is not fully utilized. But congestion window in the slow start stage has been window on the basis of index of growth is also easy to cause the link congestion occur, because of exponential growth feature makes the window has a larger case next time change difference is bigger, this way of the enormous increase of window is easy to be caused by the sudden surge in which data link is greatly impact data volume and collided, packet loss, and even cause before has not entered the stage of congestion avoidance began to reduce the congestion window size and deal with the problem such as packet loss, bandwidth utilization efficiency is low.
In order to mitigate the impact of the above situation on the efficiency of satellite communication, Vegas_improve algorithm will be improved in the slow start phase in the following two aspects: firstly, in the slow start phase, it will adjust the congestion window once every time it gets the ACK back from the receiver, instead of once every two RTT. After such modification, the change frequency of the congestion window in the slow start phase will be twice as the original one, so that the slow start phase can reach the ideal link state more quickly. Secondly it is in the stage of slow start to the growth of the congestion window is divided into two parts, one point for α (the default value is 1/2 threshold),when the congestion window size does not exceed this threshold, it grows exponentially ,when this split point is exceeded ,the congestion window is already larger ,the same exponential growth is likely to lead to congestion .Therefore, after passing this segmentation point, a method of increasing window exponential decline is adopted to increase the size of the congestion window. The pseudo code is shown below Cwnd = cwnd + threshold/ (2 * I); }} Using the above grown method can avoid the congestion of the link in the face of the sudden increase of congestion window due to the rapid grown of data in the later period, also because of its high growth after more than ɑ is base of diminishing growth, this kind of grown mode, which is closer to the slow start threshold, has the characteristics of detecting link status, the algorithm can move from the slow start phase to the congestion avoidance phase and still maintain a large congestion window. Since the congestion avoidance phase will resume the congestion window growth every other RTT, and the growth pattern is linear, a large congestion window from the slow start phase to the congestion avoidance phase can save a lot of time for window growth in the congestion window phase.

Congestion Avoidance Improvement Mechanism
The Vegas congestion avoidance phase is key to link performance during data transmission because it is during this phase that the congestion window approaches the desired size in the link. At this stage, the congestion window fluctuates near the maximum available congestion window, and it is particularly important to maintain a state closer to the ideal window size. Vegas_improve algorithm still USES the difference between ideal throughput and actual throughput as the mechanism to judge the congestion window, but adds predictive adjustments to the congestion window to make the congestion window closer to the ideal state.
The main ideas of this part of the algorithm are reserved at the source end three one-way delay RTT -S1, the RTT -S2, RTT -S3, and get the margin of a factor Z, according to the amplitude factor Z and before and after the change of RTT -S DRT -1 (RTT -S1 and RTT -difference of S2) and DRT -2 (RTT -S2 and difference of RTT -S3) the window changes divided into two types: single linear type and wave processing, respectively, for the two different congestion window changes can judge whether congestion situation to come ahead of time, thus the congestion window to take measures in advance, Instead of waiting until the link is heavily congested to adjust the window. Window adjustment in Vegas algorithm congestion avoidance phase is slow to respond to sudden changes such as data congestion. Therefore, the stability of congestion window can be greatly maintained by predicting network conditions in advance and making responses. And for congestion avoidance window adjustment phase frequency and growth reduce frequency factor analysis found that CWND increase or decrease in the process of adjusting the amplitude and decide ɑ and values will affect the transfer efficiency, so also on the basis of the above for the following two aspects has carried on the related improvement: After entering the congestion avoidance phase jump out of the slow start, in less than ɑ phase satellite communications actual throughput, close to the ideal state of throughput in the satellite link congestion does not occur, data transmission in a theoretically can increase the good condition. This state congestion window and larger ascension space, using the traditional Vegas algorithm of linear growth increased by 1 each time the congestion window way the problem of slow growth in early may cause link, so the whole growth stage in this phase can be divided into two parts, based on impact factor in the different parts in different growth mode to adjust the congestion window.
When the diff is less than (2/3) * ɑ, at this stage has larger ascension space in the link, each time in a linear 1 will slow growth mode. Therefore, in this stage, the congestion window is mainly adjusted in the growth mode of 3*(1-diff). In addition, the congestion window is further controlled according to DTR_2, DTR_1 and Z, so that the congestion window can be adjusted more accurately in the predicted network environment. When the diff between ɑ and ɑ (2/3) *, the congestion window already belongs to close to link saturation state, use the traditional way of linear increase growth window at this time.
When the diff between ɑ and decide when it is said the link can exist in the cache additional package number between 1 and 3, is at a slight link congestion but won't happen again link congestion, at this time of every CWND adjustments have to be careful. The optimal state is to achieve but there is no congestion or packet loss, so at this stage, window adjustment is also divided into two situations for analysis and processing. And then to decide if the diff is less than (ɑ +) / 2, the congestion window according to the size of the DTR_1 and DTR_2 points to increase or decrease 1 adjust the congestion window. And then to decide if more than (ɑ+β) / 2, basic in saturated state, at this time window at this time in the above the adjustment according to every time adjustment under the condition of each window half of their original cost. Vegas_improve algorithm the predictive processing of the window here makes the window in the state of constant adjustment to avoid the window adjustment into suspended animation state and improve the tolerance of the window.
When diff is greater than β, the window has reached the cacheable saturation state, and congestion is likely to occur. At this point, the values of two diff can be compared. When diff is reduced, the window can still be increased even though the saturation state has been reached but no congestion has occurred. And ɑ and β at this stage to decide the value of the followed accordingly adjusted. In other words, this part of the algorithm changes the fixed threshold value to the dynamically adjustable threshold value. With the combination of different amplitude factors and window stage, the threshold value is adjusted dynamically by small amplitude.

Simulation and Performance Test
At present, there are many commonly used simulation software on the market, such as NS2, OPNET, MATLAB, SPW and so on.NS2 and OPNET have good simulation results in this respect. In addition, semi-physical simulation is also a very common method. This paper simulates the transport layer protocol in OPNET software environment.

Simulation Environment Construction and Parameter Setting
OPNET14.5 network simulation software was used to simulate the simulation environment to verify the performance of the algorithm. The simulation model library is the CCSDS protocol model library, which adopts the standard scps-tp communication protocol. The simulation diagram of the satellite simulation model layer is shown as follows: Figure 1. Logical event In this experiment, simulation will be carried out at different orbital heights. The number of caches in the middle of the satellite is 50. Packet loss is made by tail loss, packet size is set to 1000bytes, and link bandwidth ratio is 100:1. In the whole simulation process, the satellite node is used as the signal sending end to send data to the ground receiving end, and the data flow is sent from the sending end in the form of FTP transfer. The SCPS-TP protocol adds Vegas algorithm on the basis of TCP and improves some contents to make the protocol more suitable for use in satellite network.

Influence of Different RTT on the new and old Algorithms
In OPNET, there are two ways to set the value of RTT. One is to set it to a fixed RTT directly at the bottom of the code, not enough to go into the bottom of the code for every modification. Since the bottom code area is the common code area of the whole simulation library, it is not recommended to modify it here. The other is to set the altitude and calculate the RTT from the height and the speed of light, which is generally recommended. This comparison is about the testability algorithm performance under different RTT, so set the bit error rate to 10e-7, and then set different RTT by adjusting the height of the satellite. In this experiment, the converted 20ms, 40ms and 200ms were used as simulation references to obtain the following simulation comparison figure:  The analysis of the above four simulation results shows that the Vegas_improve algorithm's result is basically the same as Vegas algorithm's result when the round-trip delay is 20ms, and even the throughput of Vegas_improve algorithm is slightly lower than Vegas algorithm after the congestion window stabilizes. This happens because the RTT is small and because the original Vegas algorithm has a higher growth rate on the congestion window than the Vegas_improve algorithm during the congestion avoidance phase. According to the following two simulation figures, Vegas_improve algorithm can obtain greater resource utilization in the link when the round-trip delay is larger, because the long delay leads to the increase of real-time difference value of sendRTT, and the new algorithm has a better control window mechanism for such large round-trip delay. Therefore, the throughput of the new algorithm is higher than that of the Vegas algorithm in the case of long latency.

Conclusion
In this paper, RTT acquisition is modified to solve the problem that the forward congestion window may decrease due to reverse link congestion. Traditional RTT obtains the data information in the network from the time it is sent to the time it is received. An RTT contains the information of the reverse path, intersatellite processing and other factors. The jumbled information will interfere with the Vegas check mechanism's ability to correctly check the link status in the network, so the new sendRTT eliminates the reverse useless processing time. This is done by adding a timestamp to the acknowledgement sent by the receiver to record when the data arrives at the receiver, and by adding a timeframe processing mechanism at the source. Through the above improvements, a sendRTT containing only the sending time can be obtained. SendRTT can show the real-time status of the forward link more accurately, so that the congestion window can be adjusted more accurately. Due to the characteristics of high bit error rate and long delay of satellite communication, using Vegas algorithm to detect the environment in satellite network and adjust the congestion window is not ideal, especially in poor network environment. Due to the high bit error rate in the network, packet loss is easy to occur. However, the long network delay makes the corresponding speed of the sending end to the network slow, which leads to lag and inaccurate congestion window adjustment. Therefore, on the basis of using the original RTT to control the congestion window, the network prediction mechanism is added to carry out the joint adjustment scheme for the congestion window. Multiple round trip delays are stored at the sending end, and the network information obtained by the original sendRTT is