TCP 느린 시작 (TCP slow start)
TCP 느린 시작은 네트워크 성능에 대한 전송 속도를 높이는 데 도움이 됩니다. 처음에는 해당 기능이 무엇인지 알지 못하고 혼잡을 일으키지 않고 이 작업을 수행합니다. TCP 느린 시작은 패킷 전송에 사용 가능한 대역폭을 감지하고 네트워크 연결 속도의 균형을 맞추는 데 사용되는 알고리즘입니다. 초기에 기능을 알 수 없는 네트워크 혼잡 현상을 방지하고, 네트워크의 최대 용량을 찾을 때까지 확산되는 정보의 양을 천천히 늘립니다.
TCP 느린 시작을 구현하기 위해, 혼잡 창('cwnd')은 확인('ACK')을 수신하기 전에 소스가 네트워크를 통해 전송할 수 있는 데이터 양에 대한 상한을 설정합니다. 느린 시작 임계값('ssthresh')은 느린 시작의 (비)활성화를 결정합니다. 새로운 연결이 이루어지면 cwnd는 하나의 TCP 데이터 또는 확인 패킷으로 초기화되고 확인 또는 ACK를 기다립니다. 해당 ACK가 수신되면, 'cwnd'가 'ssthresh'보다 커질 때까지 혼잡 창이 증가됩니다. 혼잡이 발생하면 느린 시작도 종료됩니다.
혼잡 제어
혼잡 자체는 메시지 트래픽이 너무 많아 네트워크 응답 시간이 느려질 때 네트워크 계층 내에서 발생하는 상태입니다. 서버는 TCP 패킷으로 데이터를 보내고, 사용자의 클라이언트는 확인 또는 ACK를 반환하여 전달을 확인합니다. 하드웨어 및 네트워크 상태에 따라 연결 용량이 제한됩니다. 서버가 너무 많은 패킷을 너무 빨리 보내면 해당 패킷이 삭제됩니다. 즉, 확인이 없을 것입니다. 서버는 이를 누락된 ACK로 등록합니다. 혼잡 제어 알고리즘은 전송된 패킷과 ACK의 흐름을 사용하여 전송 속도를 결정합니다.