링크 ux 에서 TCP keepalive 속성 설정

Linux 운영 체제 에서 TCP keepalive 속성 보기
놓 칠 수 없 는 IBM 클 러 스 터 기술 자원 집합
<!-- google_ad_client = "pub-8876982994034985"; /* 336 x280, 문장 내 페이지 * / googlead_slot = "1326844186"; google_ad_width = 336; google_ad_height = 280; //-->  


 
< p style = "color: rgb (51, 51, 51); text - indent: 2em;" > Tcp 는 연결 을 위 한 것 입 니 다. 실제 응용 프로그램 에서 연결 이 사용 가능 한 지 확인 해 야 합 니 다. 사용 할 수 없 으 면 < / p > 로 나 눌 수 있 습 니 다.

 


< p style = "color: rgb (51, 51, 51); text - indent: 2em;" > a. 연 결 된 쌍 끝 이 정상적으로 닫 힙 니 다. < / p >

 


< p style = "text - indent: 2em;" > < span style = "color: \ # 33333333;" > b. < / span > < span style = "color: \ # ff 6666;" > 연 결 된 엔 드 가 비정상적 으로 닫 힙 니 다. 이 는 엔 드 장치 의 정전, 프로그램 붕괴, 네트워크 중단 등 을 포함 합 니 다. 이 경우 엔 드 에 알 릴 수도 없 기 때문에 연결 이 계속 존재 하고 국가의 자원 을 낭비 합 니 다. < / span > < span style = "color: \ # 33333;" >. < / span > < / p >

 


< p style = "color: rgb (51, 51, 51); text - indent: 2em;" > tcp 프로 토 콜 창고 에 keepalive 속성 이 있 습 니 다. socket 이 사용 가능 한 지 여 부 를 주동 적 으로 탐지 할 수 있 지만 이 속성의 기본 값 은 매우 큽 니 다. < / p >

 


< p style = "color: rgb (51, 51, 51); text - indent: 2m;" > 전역 설정 변경 가능 / etc / sysctl. conf, 추가: < / p >

 


 









net.ipv4.tcp_keepalive_intvl = 20
net.ipv4.tcp_keepalive_probes = 3
net.ipv4.tcp_keepalive_time = 60


 


< p style = "color: rgb (51, 51, 51); text - indent: 2em;" > 프로그램 에 다음 과 같이 설정 합 니 다. < / p >

 


 









#include 
#include 
#include 
#include 
#include 
int keepAlive = 1; //   keepalive  
int keepIdle = 60; //      60          ,      
int keepInterval = 5; //            5  
int keepCount = 3; //        .   1          ,  2     .

setsockopt(rs, SOL_SOCKET, SO_KEEPALIVE, (void *)&keepAlive, sizeof(keepAlive));
setsockopt(rs, SOL_TCP, TCP_KEEPIDLE, (void*)&keepIdle, sizeof(keepIdle));
setsockopt(rs, SOL_TCP, TCP_KEEPINTVL, (void *)&keepInterval, sizeof(keepInterval));
setsockopt(rs, SOL_TCP, TCP_KEEPCNT, (void *)&keepCount, sizeof(keepCount));


 


< p style = "color: rgb (51, 51, 51), text - indent: 2em;" > 는 tcp 가 엔 드 socket 을 더 이상 사용 할 수 없 음 을 감지 할 때 (탐측 가방 을 보 낼 수 없 거나 탐측 가방 이 ACK 의 응답 패 키 지 를 받 지 못 함) selection 은 socket 을 읽 을 수 있 고 recv 에서 - 1 을 되 돌려 주 며 errno 를 ETIMEDOUT 로 설정 합 니 다. < /p>





좋은 웹페이지 즐겨찾기