CnUnix

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ CnUnix ] in KIDS
글 쓴 이(By): akira (Park_S_J_)
날 짜 (Date): 2003년 2월 12일 수요일 오전 03시 44분 56초
제 목(Title): Re: 네트워크 프로그램 질문...


connect하는 쪽이라면 SO_REUSEADDR하고는 상관 없습니다.

TIMEWAIT 상태의 소켓수는 netstat -n|grep TIME_WAIT|wc -l 등으로 알 수 있습니다.
이 숫자가 1024 같이 fd max로 추정되는 특정 숫자 근처를 넘지 못하고
항상 숫자가 그 근처가 됐을 때 에러가 난다면 TIMEWAIT 소켓 문제일 확률이 높습니다.

TIMEWAIT 문제가 확실하다면 passive close를 하거나(그러나 서버쪽에 쌓이므로 마찬가지)
TIMEWAIT 시간을 조절하세요.
fd max 갯수 조절하는 걸로는 각이 잘 안납니다.

linux라면 dynamic tune은 안되는 것 같고
linux/include/net/tcp.h에서 
#define TCP_TIMEWAIT_LEN (60*HZ)
부분을 줄인다음에 커널을 새로 컴파일 하셔야 할듯.
네트웍 상황이 좋다면 6초나 심지어 2~3초도 별 문제 없을 겁니다.

[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.