TCP는 네트워크 상태에 따라 데이터 전송량을 제어하는 알고리즘이 있다.

수신 윈도우

수신 윈도우는 TCP 연결에서 수신 버퍼 역할을 한다.

세그먼트를 너무 많이 전송해서 수신 윈도우 크기를 넘어서면 손실이 발생할 것이다. 이러한 문제를 없애고 데이터 송신을 효율적으로 하기 위해 TCP 프로토콜 헤더에 자신의 현재 수신 윈도우 여유 크기를 담아 상대방에게 알려준다.

송신 윈도우

송신 윈도우는 고정 값이 아니라 네트워크 환경에 따라 동적으로 크기가 조절된다.

송신 윈도우 크기는 송신 측 혼잡 윈도우(Congestion window)와 수신측 수신 윈도우(Receiver window) 중 작은 값이 결정된다.

TCP 윈도우 옵션

소켓 생성시 SO_RCVBUF / SO_SNDBUF 옵션으로 송수신 윈도우 크기 제어가능