tcp buff 결정 문제
글쓴이: rhseo6953 / 작성시간: 월, 2012/07/23 - 12:20오후
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이 나가게 된다고( 작은 값으로 ) 생각합니다만...
또한 패킷을 보내게 될때 두가지 메커니즘중에 작은값을 선택해서 보내게 되는 것인가요??
다른 곳들을 찾아보니 두가지의 연관성에 대해선 없고 각자에 대한 설명만 잔뜩이네요...^^
이상 감사합니다
Forums:
http://www.cs.cmu.edu/~srini/
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의 구현 방식과 버젼에 따라 상이합니다.
답글 감사합니다..^^
다시 요약하여 질문을 해보자면..^^
MSS = 1024
CWND 1(== MSS) 부터 시작..
3 hand shake 시에 offered window 값은 4096 일 경우 , 처음 데이터크기는 1024 bytes 하나만 전송되는 것인가하는 질문입니다.
만일, 그렇다면 초기 3 hand shake시에 사용되었던 offered window 값은 무의미하지 않나 싶습니다만.. 어차피 CWND값이 1로 시작할꺼면..ㅡㅡ;
달리 깊게들어가는 부분은 rfc를 읽어보시는게
달리 깊게들어가는 부분은 rfc를 읽어보시는게 좋겠네요.
http://tools.ietf.org/html/rfc813
rfc 문서.. 감사합니다...
참조해봐야 하겠네요...
대충 보자하니 offered window는
대충 보자하니 offered window는 리시버측에서 가지고있는 버퍼스페이스의 사이즈인듯 하네요.
일단 congestion control은 위의 방식으로 하고 offered window size 를 힌트로 사용하는듯 싶습니다.
rfc에도 각각의 tcp버젼마다 implementation이 다르다고 하는듯 하는군요.
대충밖에 읽어보지 않아 정확하지는 않습니다.
댓글 달기