net.ipv4.tcp_syn_retries
글쓴이: rigil / 작성시간: 목, 2004/09/09 - 4:39오후
안녕하세요.
기본적인 질문입니다만...
net.ipv4.tcp_syn_retries 옵션을 사용하면, 일정한 시간과 일정한 IP별로 보내고 받는 syn이 횟수를 제한할수 있다고 알고 있는데요.
일정한 시간이 어느정도인지 알고 싶습니다.
검색을 해보았으나..없더군요.
혹시 제가 못찾은거라면, 죄송합니다.
그럼 이만~
Forums:
Re: net.ipv4.tcp_syn_retries
man tcp(매뉴얼 페이지)
잡담을 잠시 섞으면요.
socket레벨에서(user level) connect()를 호출할때, connect()는 원격지에
SYN 패킷을 보내게됩니다.(그리고는 SYN+ACK받고, ACK보내지요 아시다시피)
이때, 잘~되는 시나리오 말고, 안되는 시나리오를 생각해 볼 수 있겠습니다.
SYN을 보냈는데(connect()호출), 감감 무소식이면 열받겠지요.
이 책임은 커널이(운영체제가) 져야 하는부분이니 말입니다.
그래서 운영체제는 SYN+ACK나 RST(거부)같은 SYN에 대한 응답 패킷이 오지 않는 경우를
생각합니다(정확히는 TCP/IP스택부분이겠지요)
방법은 당연히, 타임아웃을 걸고 제한시간까지 안오면 다시보낸다. 왜냐, 중간에
SYN이 소실될 수도 있으니까....
그럼 얼마를 타임아웃으로 걸것이며, 또한, 도대체 몇번이나 다시 시도해야 하는가?
라는 문제가 또 발생하네요.
해결책은 원격지와 연결확립시 특히, active open(connect()라는 것을 할때),
tcp의 syn에 대한 retry를 몇번할까?라는 문제를 푸는것도 그중 하나이겠지요.
또하나는, 취향인데요, 난 삼세판 만할거다. 난 5번 할거다. 이런 식으로
사용자 별로 튜닝을 할 수 있어야 할것이라는 것입니다. 유닉스(리눅스)는
오픈시스템(개방형시스템)이니까요. 소위 커널 파라메터로 말입니다.
여기까지 읽으시고, 다음은 man tcp를 보시기 바랍니다. man page를 보면
제가 얘기한 것보다는 보다 정확하고, 많은 지식을 얻으실것으로 보입니다.
------------------ P.S. --------------
지식은 오픈해서 검증받아야 산지식이된다고 동네 아저씨가 그러더라.
rigil I definitely agree with your words
rigil I definitely agree with your words.
댓글 달기