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

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

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

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

답변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)

관련 정보