# mmS-TCP: Scalable TCP for Improving Throughput and Fairness in 5G mmWave Networks
## 3 Scalable TCP for 5G MmWave Networks
### MmWave Scalable TCP
#### 3.3.2 Cwnd Decrease Mechanism of mm-Scalable TCP  
The cwnd decrease mechanism of mm-TCP aims to reduce excessive packet losses that occur at the beginning of the connection and to give the network stability. For all packet loss situations except retransmission time-out (RTO), S-TCP reduces cwnd by 0.125, as shown in Equation (2). In the slowstart phase, cwnd may increase to a value higher than the actual available capacity of the link in proportion to the bottleneck buffer size, a decrease in cwnd of 0.125 may cause additional RTO and lead to a repetition of the slowstart phase. A repeated slowstart phase can cause many packet losses at the beginning of the TCP connection and adversely affect other flows passing through the same link. Figure 3(a) shows the slowstart phase of a single TCP flow passing through the mmWave link. S-TCP ends the first slowstart in 0.5 s and reduces cwnd from about 14,000 packets to 12,250 packets. Because the cwnd at this time is also a value that exceeds the bottleneck bandwidth, RTO soon occurs and slowstart is performed again at about 0.8 s. Repeated slowstart phases can cause serious fairness problems for other flows that share links. Figure 3(b) illustrates the slowstart phase when both TCP connections begin at the same time in a topology where S-TCP and CUBIC pass the same link. S-TCP has three consecutive slowstart phases due to a small cwnd reduction, and the CUBIC connection is also affected. Figure 5 is the result of confirming the number of duplicate ACKs generated during the slowstart phase through Wireshark [32]. As illustrated in Figure 4(a), several duplicated ACKs occur in the CUBIC flow due to the slowstart phases of the S-TCP flow. Figure 4: Cwnd change during the slowstart phase: (**a**) single S-TCP; (**b**) CUBIC vs. S-TCP. Figure 3: Cwnd change of S-TCP and mmS-TCP. In a situation where two CUBIC flows compete, approximately 11,000 duplicated ACKs occurred in each CUBIC flow during the slowstart phase. This corresponds to 1.4% and 1.1%, respectively, of the total number of packets. However, when CUBIC flows compete with S-TCP, 14,784 duplicated ACKs are generated, representing 2.8% of the total packets. Therefore, in CUBIC, multiple duplicated ACKs are generated by the slowstart repetition induced by S-TCP. Therefore, in order to eliminate unnecessary slowstart repetition and provide stability to the network, the cwnd decrease mechanism of the S-TCP was changed as follows:  
1. For each packet loss: \[\text{cwnd}\leftarrow\text{cwnd}-[0.125\times\text{cwnd}]\text{ in the congestion avoidance phase}.\] (4a) \[\text{cwnd}\leftarrow\text{cwnd}-[0.5\times\text{cwnd}]\text{ in the slowstart phase}.\] (4b)  
In the congestion avoidance phase, cwnd is reduced by only 12.5% in the same way as the S-TCP. The same cwnd reduction may maintain the link utilization rate during the congestion avoidance, thereby ensuring throughput. However, in order to cope with packet loss occurring in slowstart, the current cwnd size is reduced by half, as in the traditional TCP congestion control (NewReno). This prevents unnecessary slowstart repetitions and ensures fairness with competing flows. Figure 6 shows the cwnd change during the slowstart phase of the mmS-TCP. In Figure 6, a single mmS-TCP flow performs congestion avoidance after one slowstart, unlike S-TCP, which performs slowstart twice. Even in a situation that competes with the CUBIC flow, as shown in Figure 6, the mmS-TCP increases to the slowstart threshold (ssthresh) after one slowstart phase and enters stably into congestion avoidance. Figure 5: Duplicated ACKs generated during the slowstart phase: (**a**) CUBIC flow; (**b**) S-TCP flow. Figure 6: Cwnd change during the slowstart phase: (**a**) single mmS-TCP; (**b**) CUBIC vs. mmS-TCP. The following results were derived by modifying the cwnd decrease mechanism of S-TCP.