fbpx
Wikipedia

CUBIC TCP

CUBIC is a network congestion avoidance algorithm for TCP which can achieve high bandwidth connections over networks more quickly and reliably in the face of high latency than earlier algorithms. It helps optimize long fat networks.[1][2]

In 2006, the first CUBIC implementation was released in Linux kernel 2.6.13.[3] Since kernel version 2.6.19,[4] CUBIC replaces BIC-TCP as the default TCP congestion control algorithm in the Linux kernel.[3]

MacOS adopted TCP CUBIC with the OS X Yosemite release in 2014,[5][6] while the previous release OS X Mavericks still used TCP New Reno.[7][8]

Microsoft adopted it by default in Windows 10.1709 Fall Creators Update (2017), and Windows Server 2016 1709 update.[9]

Characteristics

CUBIC is a less aggressive and more systematic derivative of BIC TCP, in which the window size is a cubic function of time since the last congestion event, with the inflection point set to the window size prior to the event. Because it is a cubic function, there are two components to window growth. The first is a concave portion where the window size quickly ramps up to the size before the last congestion event. Next is the convex growth where CUBIC probes for more bandwidth, slowly at first then very rapidly. CUBIC spends a lot of time at a plateau between the concave and convex growth region which allows the network to stabilize before CUBIC begins looking for more bandwidth.[10]

Another major difference between CUBIC and many earlier TCP algorithms is that it does not rely on the cadence of RTTs to increase the window size.[11] CUBIC's window size is dependent only on the last congestion event. With earlier algorithms like TCP New Reno, flows with very short round-trip delay times (RTTs) will receive ACKs faster and therefore have their congestion windows grow faster than other flows with longer RTTs. CUBIC allows for more fairness between flows since the window growth is independent of RTT.

Algorithm

CUBIC increases its window to be real-time dependent, not RTT dependent like BIC. The calculation for cwnd (congestion window) is simpler than BIC, too.

Define the following variables:

  • β: Multiplicative decrease factor
  • wmax: Window size just before the last reduction
  • T: Time elapsed since the last window reduction
  • C: A scaling constant
  • cwnd: The congestion window at the current time

RFC 8312 indicates the following:

  • The unit of all window sizes in this document is segments of the maximum segment size (MSS), and the unit of all times is seconds. (Section 4)
  • β SHOULD be set to 0.7 (Section 4.5)
  • C SHOULD be set to 0.4 (Section 5)

Then cwnd can be modeled by:

 

See also

Apart from window based algorithms like Cubic, there are rate based algorithms (including BBR from Google) that works differently using "sending rate" instead of the window[12]

References

  1. ^ Sangtae Ha; Injong Rhee; Lisong Xu (July 2008). (PDF). ACM SIGOPS Operating Systems Review. 42 (5): 64–74. doi:10.1145/1400097.1400105. S2CID 9391153. Archived from the original (PDF) on July 26, 2015. Retrieved September 29, 2015.
  2. ^ Sangtae Ha; Injong Rhee; Lisong Xu; Lars Eggert; Richard Scheffenegger (February 2018). CUBIC for Fast Long-Distance Networks. doi:10.17487/RFC8312. RFC 8312.
  3. ^ a b Ha, Sangtae; Rhee, Injong; Xu, Lisong (2008). "CUBIC: A New TCP-Friendly High-Speed TCP Variant". ACM SIGOPS Operating Systems Review. ACM New York, NY, USA. 42: 11. doi:10.1145/1400097.1400105. S2CID 9391153.{{cite journal}}: CS1 maint: date and year (link)
  4. ^ "[TCP]: Make cubic the default · torvalds/Linux@597811e". GitHub.
  5. ^ "apple-oss-distributions/distribution-macOS at os-x-1010". GitHub. TCP Congestion Control is implemented in the XNU Kernel, this commit references the XNU Kernel used in Mac OS X Yosemite
  6. ^ "xnu/tcp_cc.h at a3bb9fcc43a00154884a30c9080595284c26cec9 · apple-oss-distributions/xnu". GitHub. April 29, 2022.Header file of the TCP congestion control implementation of the XNU Kernel used in Mac OS X Yosemite stating CUBIC as default
  7. ^ "apple-oss-distributions/distribution-macOS at os-x-1095". GitHub.References XNU Kernel used in Mac OS X Mavericks
  8. ^ "xnu/tcp_cc.h at d2a0abf2ede8152c5a107fe51e032c1193d2015b · apple-oss-distributions/xnu". GitHub. April 29, 2022. Header file of the TCP congestion control implementation of the XNU Kernel used in Mac OS X Mavericks stating New Reno as default
  9. ^ Microsoft (November 15, 2017). "Updates on Windows TCP" (PDF).
  10. ^ Tetcos Engineering (2014). "Comparison of TCP congestion control algorithms" (PDF). (PDF) from the original on March 31, 2017. Retrieved August 6, 2017.
  11. ^ La Rosa, Alexander (10 July 2019). . Pandora FMS. Archived from the original (html) on 12 July 2019. Retrieved 12 July 2019. The intention is to have an algorithm that works with congestion windows whose incremental processes are more aggressive, but are restricted from overloading the network. In order to achieve this, it is proposed that the scheme for increasing and decreasing the transmission ratio be established according to a cubic function.
  12. ^ "Congestion control, PK3C Kernel Module rate based for video streaming and data servers". GitHub. Retrieved August 1, 2021.

External links

  • .

cubic, this, article, needs, additional, citations, verification, please, help, improve, this, article, adding, citations, reliable, sources, unsourced, material, challenged, removed, find, sources, news, newspapers, books, scholar, jstor, january, 2016, learn. This article needs additional citations for verification Please help improve this article by adding citations to reliable sources Unsourced material may be challenged and removed Find sources CUBIC TCP news newspapers books scholar JSTOR January 2016 Learn how and when to remove this template message CUBIC is a network congestion avoidance algorithm for TCP which can achieve high bandwidth connections over networks more quickly and reliably in the face of high latency than earlier algorithms It helps optimize long fat networks 1 2 In 2006 the first CUBIC implementation was released in Linux kernel 2 6 13 3 Since kernel version 2 6 19 4 CUBIC replaces BIC TCP as the default TCP congestion control algorithm in the Linux kernel 3 MacOS adopted TCP CUBIC with the OS X Yosemite release in 2014 5 6 while the previous release OS X Mavericks still used TCP New Reno 7 8 Microsoft adopted it by default in Windows 10 1709 Fall Creators Update 2017 and Windows Server 2016 1709 update 9 Contents 1 Characteristics 2 Algorithm 3 See also 4 References 5 External linksCharacteristics EditCUBIC is a less aggressive and more systematic derivative of BIC TCP in which the window size is a cubic function of time since the last congestion event with the inflection point set to the window size prior to the event Because it is a cubic function there are two components to window growth The first is a concave portion where the window size quickly ramps up to the size before the last congestion event Next is the convex growth where CUBIC probes for more bandwidth slowly at first then very rapidly CUBIC spends a lot of time at a plateau between the concave and convex growth region which allows the network to stabilize before CUBIC begins looking for more bandwidth 10 Another major difference between CUBIC and many earlier TCP algorithms is that it does not rely on the cadence of RTTs to increase the window size 11 CUBIC s window size is dependent only on the last congestion event With earlier algorithms like TCP New Reno flows with very short round trip delay times RTTs will receive ACKs faster and therefore have their congestion windows grow faster than other flows with longer RTTs CUBIC allows for more fairness between flows since the window growth is independent of RTT Algorithm EditCUBIC increases its window to be real time dependent not RTT dependent like BIC The calculation for cwnd congestion window is simpler than BIC too Define the following variables b Multiplicative decrease factor wmax Window size just before the last reduction T Time elapsed since the last window reduction C A scaling constant cwnd The congestion window at the current timeRFC 8312 indicates the following The unit of all window sizes in this document is segments of the maximum segment size MSS and the unit of all times is seconds Section 4 b SHOULD be set to 0 7 Section 4 5 C SHOULD be set to 0 4 Section 5 Then cwnd can be modeled by c w n d C T K 3 w m a x where K w m a x 1 b C 3 displaystyle begin array lcr cwnd C T K 3 w max textrm where K sqrt 3 frac w max 1 beta C end array See also EditTCP congestion avoidance algorithm Transmission Control Protocol Development SCTP Compound TCPApart from window based algorithms like Cubic there are rate based algorithms including BBR from Google that works differently using sending rate instead of the window 12 References Edit Sangtae Ha Injong Rhee Lisong Xu July 2008 CUBIC A New TCP Friendly High Speed TCP Variant PDF ACM SIGOPS Operating Systems Review 42 5 64 74 doi 10 1145 1400097 1400105 S2CID 9391153 Archived from the original PDF on July 26 2015 Retrieved September 29 2015 Sangtae Ha Injong Rhee Lisong Xu Lars Eggert Richard Scheffenegger February 2018 CUBIC for Fast Long Distance Networks doi 10 17487 RFC8312 RFC 8312 a b Ha Sangtae Rhee Injong Xu Lisong 2008 CUBIC A New TCP Friendly High Speed TCP Variant ACM SIGOPS Operating Systems Review ACM New York NY USA 42 11 doi 10 1145 1400097 1400105 S2CID 9391153 a href Template Cite journal html title Template Cite journal cite journal a CS1 maint date and year link TCP Make cubic the default torvalds Linux 597811e GitHub apple oss distributions distribution macOS at os x 1010 GitHub TCP Congestion Control is implemented in the XNU Kernel this commit references the XNU Kernel used in Mac OS X Yosemite xnu tcp cc h at a3bb9fcc43a00154884a30c9080595284c26cec9 apple oss distributions xnu GitHub April 29 2022 Header file of the TCP congestion control implementation of the XNU Kernel used in Mac OS X Yosemite stating CUBIC as default apple oss distributions distribution macOS at os x 1095 GitHub References XNU Kernel used in Mac OS X Mavericks xnu tcp cc h at d2a0abf2ede8152c5a107fe51e032c1193d2015b apple oss distributions xnu GitHub April 29 2022 Header file of the TCP congestion control implementation of the XNU Kernel used in Mac OS X Mavericks stating New Reno as default Microsoft November 15 2017 Updates on Windows TCP PDF Tetcos Engineering 2014 Comparison of TCP congestion control algorithms PDF Archived PDF from the original on March 31 2017 Retrieved August 6 2017 La Rosa Alexander 10 July 2019 Why does CUBIC take us back to TCP congestion control Pandora FMS Archived from the original html on 12 July 2019 Retrieved 12 July 2019 The intention is to have an algorithm that works with congestion windows whose incremental processes are more aggressive but are restricted from overloading the network In order to achieve this it is proposed that the scheme for increasing and decreasing the transmission ratio be established according to a cubic function Congestion control PK3C Kernel Module rate based for video streaming and data servers GitHub Retrieved August 1 2021 External links EditBIC amp CUBIC Home Page at NC State University This computer networking article is a stub You can help Wikipedia by expanding it vte Retrieved from https en wikipedia org w index php title CUBIC TCP amp oldid 1109940650, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.