Window size (윈도우 크기)

공부/Network

Window size (윈도우 크기)

해리누나 2024. 6. 25. 21:43
반응형

 

1. Window size

일련번호(Sequence Number)와 확인 응답 번호(Acknowledgment Number)에 대해 이야기할 때 위와 같은 예를 들었었다. 위 예시는 세그먼트 하나를 보낼 때마다 확인 응답(ACK)을 한 번 반환하는 통신이라 효율이 높지 못하다. 이렇게 매번 세그먼트를 하나 보내고 이에 대한 확인 응답을 기다리는 것보다는 세그먼트를 연속해서 수신 측의 버퍼(buffer: 세그먼트를 일시적으로 보관하는 장소)에 보낸 다음에 확인 응답을 반환하는 것이 효율이 높다.

하지만 세그먼트를 너무 많이 보내게 되면 수신 측의 버퍼가 초과되어(오버플로우) 데이터가 유실될 수 있다. 그래서 오버플로우가 발생하지 않도록 자신의 버퍼의 한계 크기를 알고 있어야 하는데 이 값이 바로 TCP 헤더의 Window size 다. 

 

TCP 헤더

세그먼트를 보낼 때마다 확인 응답(ACK)을 기다려야 한다면 송신 효율이 좋지 않다. 때문에 세그먼트를 수신 측의 버퍼에 한꺼번에 보내고서 확인 응답을 받으면 송신 효율을 높일 수 있다. 하지만 세그먼트를 너무 많이 보낸다면 수신 측의 버퍼를 초과해(오버플로우) 데이터가 유실된다. 이 때문에 Window Size 헤더가 사용된다.Window Size는 자신의 버퍼 최대 크기이다. 3-way handshaking 시 서로의 버퍼 최대 크기를 알려주기에 상대방의 버퍼가 초과하지 않도록 세그먼트를 한꺼번에 보낸다.

 

  • 윈도우 크기(Window Size): 송신자가 수신자로부터 일일이 확인 응답을 받지 않고 연속으로 전송할 수 있는 최대 데이터 양, 버퍼 용량의 크기
  • 이 윈도우 크기의 초깃값은 3-way Handshake를 할 때 판단된다.
  • 이제 상대방의 버퍼의 한계 값을 갈게 되었으니 오버플로우가 되지 않도록 세그먼트를 전송하면 된다.

 

TCP 데이터 전송 과정

  • 매번 데이터를 보낼 때마다, 확인응답을 기다리지 않고 상대방의 버퍼내에서 연속해서 보낸다면 통신은 위와 같은 모습이다.

 

 

 

 

 

참고

책: 10일만에 배우는 네트워크 기초, 모두의 네트워크 | 미즈구치 카츠야 | 이승룡 옮김

728x90
반응형

'공부 > Network' 카테고리의 다른 글

UDP(User Datagram Protocol)란?  (0) 2024.06.26
Port (포트)란?  (0) 2024.06.26
Sequence Number 와 Acknowledgment Number  (1) 2024.06.23
TCP 3-way 와 4-way Handshake  (0) 2024.06.23
TCP 와 TCP 헤더  (1) 2024.06.22