예, TCP 소켓 연결에는 다음과 같은 시간 초과 메커니즘이 있습니다. TCP 연결 유지. 이는 소켓 연결이 무기한 열려 있는 것을 방지하여 한쪽이 다른 쪽에게 알리지 않고 연결을 종료하는 시나리오를 해결합니다.
TCP 연결 유지는 다음을 통해 Linux에서 구성할 수 있습니다. 속성:
이 프로세스에는 응답이 수신될 때까지 정기적으로 빈 ACK 패킷을 보내는 작업이 포함됩니다. 지정된 수의 프로브 후에도 응답이 수신되지 않으면 연결이 종료됩니다.
Keep-Alive 패킷은 선택 사항이며 안정적으로 전송되지 않을 수 있습니다. 그러나 실제로는 대부분의 운영 체제와 클라우드 공급자가 이 메커니즘을 지원합니다.
소켓별 구성(Java 11 이상):
Java 11에는 네이티브 코드를 사용하여 소켓별 수준에서 TCP 시간 초과를 구성하는 기능이 도입되었습니다.
시스템 전체 구성:
이전 버전의 Java 및 다른 운영 체제에서는 시스템 수준에서 시간 초과 구성을 적용해야 할 수도 있습니다.
Linux:
# Echo commands to modify the values in /proc echo 180 > /proc/sys/net/ipv4/tcp_keepalive_time echo 3 > /proc/sys/net/ipv4/tcp_keepalive_probes echo 10 > /proc/sys/net/ipv4/tcp_keepalive_intvl
Mac OS X:
# Use sysctl to modify values sysctl -w net.inet.tcp.keepidle=180000 net.inet.tcp.keepintvl=10000 net.inet.tcp.keepcnt=3
Windows:
레지스트리 키: HKEY_LOCAL_MACHINESystemCurrentControlSetServicesTCPIPParameters
위 내용은 TCP 연결 유지는 어떻게 부실 소켓 연결을 방지합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!