TCP 혼잡 제어를 완전히 끄는 방법은 무엇입니까?

TCP 혼잡 제어를 완전히 끄는 방법은 무엇입니까?

내 클러스터에서는 많은 네트워크 대역폭을 사용하는 몇 가지 실험을 실행하고 있습니다. (센트 OS 7 리눅스)

실험이 시작되면 기기는 즉시 최대 네트워크 대역폭을 사용합니다. 잠시 후 네트워크 속도가 크게 떨어졌습니다(20~25배 느려짐).

오랜 시간이 지나 대부분의 시스템이 종료되면 나머지 일부 시스템은 여전히 ​​느린 네트워크 속도로 인해 어려움을 겪고 있습니다.

TCP의 혼잡 제어 기능이 의심스러워서 꺼 볼까 고민 중입니다.

TCP 혼잡 제어를 완전히 끄려면 어떻게 해야 합니까?

답변1

TCP 작동 방식 때문에 끌 수 없습니다.

TCP는 전달을 보장하고 데이터 스트리밍을 제공하는 프로토콜입니다. 이는 모든 데이터를 수신자가 확인해야 함을 의미합니다. 이 작업이 완료되기 전에 TCP 스택은 패킷 전달을 다시 시도해야 하며 이를 위해 아직 승인되지 않은 모든 데이터를 버퍼링해야 합니다. 또한 데이터 스트림 중간에 패킷이 손실된 경우 데이터 스트림의 데이터 순서가 유지되어야 하므로 수신자는 후속 데이터를 애플리케이션에 전달하기 전에 해당 패킷이 도착할 때까지 기다려야 합니다.

네트워크가 과도하게 사용되면 데이터 자체 또는 승인 패킷이 삭제됩니다. 이는 패킷이 재전송될 때까지 기다려야 하므로 연결을 암시적으로 제한합니다. 환경에 따라 TCP 스택의 정확한 동작을 조정할 수 있는 다양한 알고리즘과 매개변수가 있지만(낮은 대역폭 대 높은 대역폭, 낮은 대기 시간 대 높은 대기 시간...) TCP의 전달 보장으로 인해 방법이 없습니다. 전체 혼잡 제어를 비활성화합니다.

관련 정보