후속 연결에서 TCP가 느리게 시작되는 이유

후속 연결에서 TCP가 느리게 시작되는 이유

내 이해에 따르면 TCP 느린 시작은 혼잡과 손실을 보상하고 방지하는 데 사용됩니다. 연결이 성공적으로 설정되어 한동안 사용되면 TCP 연결의 대역폭은 최대한 커집니다. 새로운 연결이 설정될 때마다, 동시 연결이더라도 TCP 느린 시작이 사용되어 두 TCP 스택이 이미 물리 계층의 동작을 알고 있더라도 낮은 창 크기로 연결을 시작합니다.

동일한 파트너에 대한 최근 이전 연결의 창 크기를 기억할 수 있었음에도 불구하고 TCP 스택이 항상 느린 시작을 수행하는 이유는 무엇입니까? 링크 조건이 변경되면 나중에 적절하고 빠른 시작을 안전하게 수행하고 연결 성능을 저하시킬 수 없습니까?

답변1

두 개의 TCP 연결이 심지어 동일한 두 엔드포인트 사이에서도 동일한 경로를 사용한다고 가정하는 것은 안전하지 않습니다. 예를 들어, 관련된 포트를 고려하여 여러 연결에 걸쳐 로드 밸런싱을 수행하는 것은 드문 일이 아닙니다.

이것은 이상한 선택처럼 보일 수 있지만, 많은 패킷이 순서대로 수신되지 않으면 TCP 성능이 저하될 수 있고 이를 방지하기 위해 경로에 연결을 연결하기 때문에 의미가 있습니다. 소스 IP, 대상 IP, 프로토콜, 소스 포트(해당되는 경우) 및 대상 포트(해당되는 경우)가 해시되고 해시는 다음 홉을 선택하는 데 사용되는 경우가 많습니다.

관련 정보