net.ipv4.tcp_syn_retries

rigil의 이미지

안녕하세요.
기본적인 질문입니다만...
net.ipv4.tcp_syn_retries 옵션을 사용하면, 일정한 시간과 일정한 IP별로 보내고 받는 syn이 횟수를 제한할수 있다고 알고 있는데요.
일정한 시간이 어느정도인지 알고 싶습니다.
검색을 해보았으나..없더군요.
혹시 제가 못찾은거라면, 죄송합니다.
그럼 이만~

mach의 이미지

rigil wrote:

...
net.ipv4.tcp_syn_retries 옵션을 사용하면, 일정한 시간과 일정한 IP별로 보내고 받는 syn이 횟수를 제한할수 있다고 알고 있는데요.
...

man tcp(매뉴얼 페이지)

Quote:
tcp_syn_retries
The maximum number of times initial SYNs for an active TCP
connection attempt will be retransmitted. This value should not
be higher than 255. The default value is 5, which corresponds to
approximately 180 seconds.

잡담을 잠시 섞으면요.

socket레벨에서(user level) connect()를 호출할때, connect()는 원격지에
SYN 패킷을 보내게됩니다.(그리고는 SYN+ACK받고, ACK보내지요 아시다시피)
이때, 잘~되는 시나리오 말고, 안되는 시나리오를 생각해 볼 수 있겠습니다.
SYN을 보냈는데(connect()호출), 감감 무소식이면 열받겠지요.
이 책임은 커널이(운영체제가) 져야 하는부분이니 말입니다.
그래서 운영체제는 SYN+ACK나 RST(거부)같은 SYN에 대한 응답 패킷이 오지 않는 경우를
생각합니다(정확히는 TCP/IP스택부분이겠지요)
방법은 당연히, 타임아웃을 걸고 제한시간까지 안오면 다시보낸다. 왜냐, 중간에
SYN이 소실될 수도 있으니까....
그럼 얼마를 타임아웃으로 걸것이며, 또한, 도대체 몇번이나 다시 시도해야 하는가?
라는 문제가 또 발생하네요.

해결책은 원격지와 연결확립시 특히, active open(connect()라는 것을 할때),
tcpsyn에 대한 retry를 몇번할까?라는 문제를 푸는것도 그중 하나이겠지요.

또하나는, 취향인데요, 난 삼세판 만할거다. 난 5번 할거다. 이런 식으로
사용자 별로 튜닝을 할 수 있어야 할것이라는 것입니다. 유닉스(리눅스)는
오픈시스템(개방형시스템)이니까요. 소위 커널 파라메터로 말입니다.

여기까지 읽으시고, 다음은 man tcp를 보시기 바랍니다. man page를 보면
제가 얘기한 것보다는 보다 정확하고, 많은 지식을 얻으실것으로 보입니다.

------------------ P.S. --------------
지식은 오픈해서 검증받아야 산지식이된다고 동네 아저씨가 그러더라.

익명 사용자의 이미지

rigil I definitely agree with your words.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.