"/proc/sys/net/ipv4/tcp_keepalive_time"이 Linux의 클라이언트와 서버 모두에 영향을 줍니까?

"/proc/sys/net/ipv4/tcp_keepalive_time"이 Linux의 클라이언트와 서버 모두에 영향을 줍니까?

Keep Alive를 사용하여 SOAP 기반 웹 서비스 설정을 노출하고 사용하는 Linux에서 실행되는 시스템이 있습니다. 이제 Linux에서 "/proc/sys/net/ipv4/tcp_keepalive_time"을 설정하여 TCP 연결 유지 시간 초과 값을 변경하면 이 Linux 시스템에서 실행 중인 TCP 클라이언트와 서버에 영향을 미치나요?

추가 정보: 우리는 apache karaf(servicemix)에 배포된 apache camel-cxf 엔드포인트를 사용하여 SOAP 기반 웹 서비스를 노출하고 사용합니다.

답변1

TCP keepalive에 대한 Linux 커널 내장 지원의 영향모두Keepalive TCP 소켓을 활성화합니다.

그러나 TCP 킵얼라이브는 기본적으로 활성화되어 있지 않습니다. 애플리케이션은 setsockopt이 인터페이스를 사용하여 소켓의 킵얼라이브 제어를 명시적으로 요청해야 합니다.

netstat옵션과 함께 명령을 사용하여 특정 소켓에서 keepalive가 활성화되어 있는지 확인할 수 있습니다 -o, --timers.

여기서 볼 수 있듯이 동일한 프로세스는 두 가지 모드로 서로 다른 네트워크 소켓을 열 수 있습니다.

# netstat -anpo | grep 8999
tcp        0      0 10.10.171.44:48744         10.10.139.30:8999          ESTABLISHED 18232/java          keepalive (83.39/0/0)

# netstat -anpo | grep 8009
tcp        0      0 10.10.171.44:8009          10.10.171.42:40947         ESTABLISHED 18232/java          off (0.00/0/0)

관련 정보