Table of contents
TCP - Window Size
•
네트워크 통신 시, "현재 수신자가 받을 수 있는 데이터의 크기"를 의미
OS의 윈도우(Windows)와 전혀 상관없음
◦
수신자의 버퍼(Buffer) 크기와 연관
•
TCP에서 송신자가 한 번에 보낼 수 있는 데이터의 최대 크기를 결정하는 요소
◦
송신자는 이 값을 보고 너무 많은 데이터를 한 번에 보내지 않도록 조절
Window size값을 조절하며 송수신 속도를 최적화하는 TCP
TCP는 실시간으로 Window size값을 조정하면서 송수신 속도를 최적화한다.
1.
처음에 서버의 수신 Buffer size = 10,000 byte
2.
서버가 5,000byte를 사용하면 ? Window size = 5,000 byte로 변경
3.
서버가 데이터를 응용 프로그램에 넘겨서 처리하면, 버퍼에 공간이 생김
4.
서버는 새로운 Window size를 ACK 패킷에 포함해서 Client에게 전달
5.
Client는 이 값을 참고하여 보낼 Data size를 조절
TCP Window Size 확인방법 - tcpdump 사용
•
Wireshark나 tcpdump같은 패킷 캡쳐 프로그램을 사용하여
TCP 패킷의 Window size 필드를 직접 확인 할 수 있다.
•
아래는 WSL2(Ubuntu)에서 server 띄워놓고, tcpdump를 실행하여 loopback주소의 8080포트로 송수신되는 패킷을 캡쳐하도록 설정해둔 뒤, client
server 1회 송수신한 화면이다.
◦
tcpdump 에서는 Window size필드가 win으로 표시된다.
TCP Window size 필드 tcpdump로 확인
영상으로 기록 !