tcp buff 결정 문제

rhseo6953의 이미지

flow control VS congestion control을 통한 packet size 결정? ( 실질적으로 초기에 보내게 되는 size가 궁금합니다 )

tcp를 처음 시작할때 window size를 결정하게 됩니다.

3 hand shake가 이루어질때 nego하여 receiver의 윈도우 크기를 얻구요

한가지 궁금한 점이... congestion control을 시작하게 되면 ssthresh를 시작하며

cwnd size가 1부터 시작하는 것으로 알고 있습니다.

그렇게 된다면 실질적으로 sender가 보내게 되는 size는 하나의 cwnd에 해당하는 값으로 설정되는 것인가요?

그렇다면 flow control을 위한 초기 nego된( 3 hand shake를 통한 ) 값은 거의 무의미해지는게 아닌가해서요.. 물론 진행중에는 필요한 값이지만

cwnd 값에 의해 1개의 cwnd로 거의 시작하는건 아닌가해서 질문 드립니다..

두가지 방법을 통해 실질적으론 하나의 값으로 선택되어 packet이 나가게 된다고( 작은 값으로 ) 생각합니다만...

또한 패킷을 보내게 될때 두가지 메커니즘중에 작은값을 선택해서 보내게 되는 것인가요??

다른 곳들을 찾아보니 두가지의 연관성에 대해선 없고 각자에 대한 설명만 잔뜩이네요...^^

이상 감사합니다

익명 사용자의 이미지

http://www.cs.cmu.edu/~srini/15-441/F11/lectures/18-tcpdetails.pdf
제가 난독증인건지,,,, 사실 글의 요지가 뭔지 잘 모르겠습니다.
cwnd는 원래 1부터 시작합니다.
그리고 1, 2, 4, 8의 형태로 두배씩 올라가다 ssthresh value를 넘어가게 되면 그때부터 1씩 증가하지요
그리고 패킷의 타임아웃 시에는 1부터 다시 시작합니다. (slow start엿나?)
하지만 이게 언제 한번 문제가 되여 fast retransmit이라는 것이 생깁니다.
이건 3개의 dup ack이 도착시에 cwnd를 반으로 줄이고 이를 ssthresh로 저장후 다시 시작합니다.

허나 자세한 임플리멘테이션은 tcp의 구현 방식과 버젼에 따라 상이합니다.

rhseo6953의 이미지

다시 요약하여 질문을 해보자면..^^

MSS = 1024

CWND 1(== MSS) 부터 시작..

3 hand shake 시에 offered window 값은 4096 일 경우 , 처음 데이터크기는 1024 bytes 하나만 전송되는 것인가하는 질문입니다.

만일, 그렇다면 초기 3 hand shake시에 사용되었던 offered window 값은 무의미하지 않나 싶습니다만.. 어차피 CWND값이 1로 시작할꺼면..ㅡㅡ;

익명 사용자의 이미지

달리 깊게들어가는 부분은 rfc를 읽어보시는게 좋겠네요.
http://tools.ietf.org/html/rfc813

rhseo6953의 이미지

참조해봐야 하겠네요...

익명 사용자의 이미지

대충 보자하니 offered window는 리시버측에서 가지고있는 버퍼스페이스의 사이즈인듯 하네요.
일단 congestion control은 위의 방식으로 하고 offered window size 를 힌트로 사용하는듯 싶습니다.
rfc에도 각각의 tcp버젼마다 implementation이 다르다고 하는듯 하는군요.
대충밖에 읽어보지 않아 정확하지는 않습니다.

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.