TCP 소켓 연결에 "Keep Alive"가 있습니까?
HTTP 연결 유지와 달리 TCP 소켓 연결은 무기한 열려 있지 않습니다. . 대신 TCP Keep-Alive에 의해 시행되는 시간 초과 제한이 적용됩니다.
소개
TCP 연결에는 각각 연결의 한쪽 끝에 있는 두 개의 소켓이 포함됩니다. 일반적으로 이러한 소켓은 한쪽 끝이 FIN 패킷으로 표시된 연결을 종료할 때까지 열려 있습니다. 그러나 의도하지 않은 소켓 종료가 발생하는 경우 오래된 연결을 감지하고 종료하기 위해 TCP Keep-Alive가 존재합니다.
Keep-Alive 프로세스
Linux 시스템에서는 TCP Keep-Alive가 있습니다. 다음 기본 설정으로 작동합니다:
tcp_keepalive_time 이상 연결이 유휴 상태로 유지되면 ACK 패킷이 상대방에게 전송됩니다. 지정된 수의 프로브 후에도 응답이 없으면 RST를 통해 연결이 종료됩니다.
Gotchas
2시간 기본값: 기본적으로 , 연결 유지 프로세스는 2시간 동안 활동이 없는 경우에만 시작되므로 오래된 연결이 지속될 수 있습니다.
연결 유지는 선택 사항입니다. 연결 유지 패킷에 대한 응답은 선택 사항이며, 일부 구현에서는 이를 삭제할 수 있습니다.
TCP 시간 초과 변경
TCP 시간 초과를 수정하려면 다음 OS별 지침을 참조하세요.
Linux:
Mac OS X:
Windows:
위 내용은 TCP 연결 유지는 어떻게 작동하며 소켓 연결은 얼마나 오랫동안 열려 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!