안녕하세요. 가입하고 처음 글을 올리는 글이 질문이 되었군요..
소켓 통신에서 연결을 끊은 뒤 FIN_WAIT1 이 오래가는 현상이 계속 일어나는데요, 이것저것 찾아봐도 적당한 내용이 없네요.. 이걸 좀 줄이는 방법이 없을까요? 리눅스 초보를 도와주세요...ㅠㅠ
unix에서는 다음과 같습니다.
default time_wait_interval 값은 240000 ms(4분)
ndd get /dev/tcp tcp_time_wait_interval 해서 setting되어있는 값을 확인하시고, 다시 설정하시려면
ndd set /dev/tcp tcp_time_wait_interval "setting할 시간(ms)"
해주시면 됩니다.
리눅스에서는 잘 모르겠네요. 어느 환경인가요?
FIN_WAIT1 에서 시간이 오래걸리고 있다는 것은 상대쪽에서 종료시에 close를 제대로 안하고 종료하기 때문입니다.
close 상황을 양쪽에서 감지했다고 해서, 무조건 끊지 마시고, 한쪽에서 종료를 하면, select나 recv 에서 close 상태를 확인하고 명시적으로 close를 호출해주셔야합니다.
아뭏든, 양쪽에서 close가 불리어야하는데, 상대쪽에서 close를 하지않고 종료했군요.
참고하세요. 스티븐스책에 있는 그림이군요
http://tangentsoft.net/wskfaq/articles/bitmaps/state-diagram-small.gif
---http://coolengineer.com
결국은 프로그램의 어딘가에서 잘 못 된 부분이... 어딘가에 있다는 말이 되겠습니다. FIN_WAIT가 난다는건... 한 번 프로그램을 다시 한 번 확인을 해보시고... 소켓 close가 제되로 되고 있는지를 확인을 해보세요...
<어떠한 역경에도 굴하지 않는 '하양 지훈'>
#include <com.h> <C2H5OH.h> <woman.h> do { if (com) hacking(); if (money) drinking(); if (women) loving(); } while (1);
제가 잘못보고 TIME_WAIT에 대해서 올려놨네요. 위에 두분이 대답을 잘 해주셨으니 다행.. ^^ 죄송합니다. 헷갈리게 해서리..
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
unix에서는 다음과 같습니다.default time_wait_i
unix에서는 다음과 같습니다.
default time_wait_interval 값은 240000 ms(4분)
ndd get /dev/tcp tcp_time_wait_interval 해서 setting되어있는 값을 확인하시고, 다시 설정하시려면
ndd set /dev/tcp tcp_time_wait_interval "setting할 시간(ms)"
해주시면 됩니다.
리눅스에서는 잘 모르겠네요. 어느 환경인가요?
FIN_WAIT1 에서 시간이 오래걸리고 있다는 것은상대쪽에서 종료시
FIN_WAIT1 에서 시간이 오래걸리고 있다는 것은
상대쪽에서 종료시에 close를 제대로 안하고 종료하기 때문입니다.
close 상황을 양쪽에서 감지했다고 해서, 무조건 끊지 마시고,
한쪽에서 종료를 하면, select나 recv 에서 close 상태를 확인하고
명시적으로 close를 호출해주셔야합니다.
아뭏든, 양쪽에서 close가 불리어야하는데, 상대쪽에서 close를 하지않고
종료했군요.
참고하세요. 스티븐스책에 있는 그림이군요
http://tangentsoft.net/wskfaq/articles/bitmaps/state-diagram-small.gif
---
http://coolengineer.com
[하양] 결국은 프로그램의 어딘가에서 잘 못 된 부분이...
결국은 프로그램의 어딘가에서 잘 못 된 부분이... 어딘가에 있다는 말이 되겠습니다.
FIN_WAIT가 난다는건...
한 번 프로그램을 다시 한 번 확인을 해보시고...
소켓 close가 제되로 되고 있는지를 확인을 해보세요...
<어떠한 역경에도 굴하지 않는 '하양 지훈'>
#include <com.h> <C2H5OH.h> <woman.h>
do { if (com) hacking(); if (money) drinking(); if (women) loving(); } while (1);
아이고..
제가 잘못보고 TIME_WAIT에 대해서 올려놨네요.
위에 두분이 대답을 잘 해주셨으니 다행.. ^^ 죄송합니다. 헷갈리게 해서리..
댓글 달기