큐빅 TCP
CUBIC TCP큐빅은 TCP의 네트워크 congestion 회피 알고리즘입니다.이 알고리즘은, 이전의 알고리즘보다 지연 시간이 긴 경우, 네트워크상에서 보다 신속하고 신뢰성 높은 고대역폭 접속을 실현할 수 있습니다.롱팻 네트워크를 [1][2]최적화하는 데 도움이 됩니다.
2006년에는 Linux 커널 2.6.[3]13에서 첫 번째 큐빅 구현이 출시되었습니다.커널 버전 2.6.[4]19 이후, [3]CUBIC는 Linux 커널의 기본 TCP 프로토콜로서 BIC-TCP를 대체합니다.
MacOS는 2014년에 [5][6]OS X Yosemite 릴리즈와 함께 TCP CUBIC을 채택했으며 이전 릴리스 OS X Mavericks는 여전히 TCP New [7][8]Reno를 사용했습니다.
Microsoft는 Windows 10.1709 Fall Creators Update(2017) 및 Windows Server 2016 1709 [9]업데이트에서 기본적으로 이 버전을 채택했습니다.
특성.
CUBIC는 BIC TCP의 덜 공격적이고 체계적인 파생상품입니다.이 경우 윈도 사이즈는 마지막 폭주 이벤트 이후의 시간의 입방 함수로, 이벤트 전에 변곡점이 윈도 사이즈로 설정됩니다.입방정식 함수이기 때문에 윈도우 성장에는 두 가지 요소가 있습니다.첫 번째는 창 크기가 마지막 폭주 이벤트 이전 크기로 빠르게 확대되는 오목부입니다.다음으로 CUBIC이 처음에는 천천히, 다음에는 매우 빠르게 더 많은 대역폭을 탐색하는 볼록한 성장입니다.큐빅은 오목한 성장 영역과 볼록한 성장 영역 사이의 고원에서 많은 시간을 보내므로 큐빅이 [10]더 많은 대역폭을 찾기 전에 네트워크를 안정시킬 수 있습니다.
큐빅과 이전의 많은 TCP 알고리즘의 또 다른 큰 차이점은 윈도 크기를 [11]늘리기 위해 RTT의 캐던스에 의존하지 않는다는 것입니다.CUBIC의 창 크기는 마지막 정체 이벤트에만 의존합니다.TCP New Reno 등의 이전 알고리즘에서는 Round-Trip Delay Time(RTT; 라운드 트립 지연 시간)이 매우 짧은 흐름은 ACK를 빠르게 수신하므로 폭주창이 RTT가 긴 다른 흐름보다 빠르게 커집니다.CUBIC을 사용하면 윈도 확장이 RTT와 무관하므로 흐름 간의 공정성이 향상됩니다.
알고리즘.
큐빅은 BIC와 같이 RTT에 의존하지 않고 실시간에 의존하도록 창을 늘립니다.cwnd(congestion window) 계산도 BIC보다 간단합니다.
다음 변수를 정의합니다.
- β: 승수 감소인자
- wmax: 마지막 축소 직전 창 크기
- T: 마지막 창 축소 후 경과된 시간
- C: 스케일링 상수
- cwnd: 현재 congestion 창
RFC 8312는 다음을 나타내고 있습니다.
- 이 문서의 모든 윈도 사이즈의 단위는 Maximum Segment Size(MSS; 최대 세그먼트사이즈) 세그먼트이며, 모든 시간의 단위는 초입니다.(제4절)
- β 0.7로 설정해야 한다 (섹션 4.5)
- C는 0.4로 설정해야 합니다(섹션 5).
다음으로 cwnd를 모델링할 수 있습니다.
「 」를 참조해 주세요.
큐빅과 같은 윈도 기반 알고리즘 외에 윈도 대신[12] 송신 레이트를 사용하여 다르게 동작하는 레이트 기반 알고리즘(구글의 BBR 포함)이 있습니다.
레퍼런스
- ^ 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.
{{cite journal}}: CS1 유지보수: 날짜 및 연도(링크) - ^ "[TCP]: Make cubic the default · torvalds/Linux@597811e". GitHub.
- ^ "apple-oss-distributions/distribution-macOS at os-x-1010". GitHub. TCP congestion 제어는 XNU 커널에서 구현되며, 이 커밋은 Mac OS X Yosemite에서 사용되는 XNU 커널을 참조합니다.
- ^ "xnu/tcp_cc.h at a3bb9fcc43a00154884a30c9080595284c26cec9 · apple-oss-distributions/xnu". GitHub. April 29, 2022.Mac OS X Yosemite에서 사용되는 XNU 커널의 TCP 폭주 제어 구현의 헤더 파일(기본값으로 CUBIC)
- ^ "apple-oss-distributions/distribution-macOS at os-x-1095". GitHub.Mac OS X Mavericks에서 사용되는 XNU 커널 참조
- ^ "xnu/tcp_cc.h at d2a0abf2ede8152c5a107fe51e032c1193d2015b · apple-oss-distributions/xnu". GitHub. April 29, 2022. Mac OS X Mavericks에서 사용되는 XNU 커널의 TCP 폭주 제어 구현의 헤더 파일(기본값으로 New Reno)
- ^ 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.
외부 링크
- NC 주립대학교의 BIC & CUBIC 홈페이지.