IT 지식/네트워크(Network)

컴퓨터 네트워크 - TCP Flow Control

나아가는중 2021. 12. 6. 19:21
반응형

TCP Flow Control

Flow control은 송신 측이 너무 많이, 너무 빨리 데이터를 전송하여 수신 측의 버퍼를 오버플로 하지 않게 하기 위한 스피드 매칭이다. 수신 측이 처리할 수 있는 속도보다 송신 측이 전송 속도를 일치시킨다. 수신자가 송신측에게 하는 행위이다.

 

수신측은 수신 버퍼(RcvBuffer)를 가지고 있다. 버퍼에 있는 TCP data를 application process가 읽어 들이는 속도가 송신 측에서 데이터를 보내는 속도보다 느린 경우 버퍼가 꽉 차게 되고 이후 들어오는 데이터는 손실(loss) 된다.

수신 버퍼의 남은 공간을 Receive Window(RcvWindow)라 부른다. RcvWindow의 크기는 RcvBuffer(전체 공간) - [LastByteRcvd - LastByteRead](TCP data in buffer)로 계산된다.

 

수신자는 TCP segement format의 RcvWindow 필드에 spare room의 크기를 적어 송신자에게 알려준다. 송신자는 unACKed data의 크기가 RcvWindow의 값을 넘지 않도록 조절한다. 송신 측은 ACK를 받지 않고 보낼 수 있는 데이터의 크기인 window 값과 RcvWindow 값 중에 가장 작은 것으로 제한한다.

 

 

반응형