#socket #tcp #udp #zmq #http/1.1 #http/2 #http/3 #quic #webrtc

제목TCP에서 rwnd를 매번 통지하는 이유가 궁금합니다.2024-03-29 17:03
작성자

안녕하세요, TCP의 flow control을 공부하다가 궁금한 점이 생겨 질문드리게 되었습니다.


Lecture 03 46페이지를 보면, Server는 수신 버퍼의 빈 용량이 생길 때마다 rwnd를 통해 가용한 윈도우 사이즈를 송신측에 통지합니다.


다만 여기서 '왜 매번 rwnd를 보내줘야 하는지'는 잘 이해가 되지 않습니다. 


가령 4번 Operation을 살펴보면, 송신측은 1. rnwd 값을 이전에 이미 800으로 통지를 받은 상태이고, 2. 200 바이트를 송신했으므로 스스로 '600바이트의 수신버퍼 용량이 남았겠구나' 라고 예측이 가능합니다.


송신측이 버퍼 사이즈를 예측하지 못하는 경우는 수신측이 consume했을 때 뿐이므로, 해당 시점에만 rwnd 값을 보내주면 되지 않나.. 라는 생각이 들었습니다.


데이터를 consume하는 일은 TCP가 아닌 상위 레이어의 관심사이므로 TCP는 consume 여부에 관계없이 항상 rwnd 값을 보내주는 것인가요?


항상 강의 잘 듣고 있습니다. 감사합니다 교수님! 

댓글