///////
Search
👩🏻

Sliding Window 라는 개념에 대해서 알고 계시나요?

핵심
흐름제어의 하나의 방식으로,
윈도우 크기를 이용해 패킷의 연속 전송과 송수신 크기 동적 변환을 가능하게 합니다.
즉 일정한 범위인 윈도우 크기를 유지하면서 이것을 이동(sliding)하는 방식으로 데이터를 전송하여 슬라이딩 윈도우라는 이름을 가지고 있습니다.

윈도우 개념

윈도우는 송신측과 수신측에 각각 송신 윈도우( awnd ), 수신 윈도우( rwnd )가 존재
송신 윈도우( awnd ) : 송신자가 ACK를 수신 받지 않아도 한 번에 연속적으로 전송할 수 있는 데이터 양을 의미
수신 윈도우 (rwnd) : 수신자가 수신 버퍼 overflow가 일어나지 않는 한에서 한 번에 받을 수 있는 데이터 양을 의미
이 윈도우 개념을 이용해서, 송신 윈도우의 크기를 수신 윈도우 보다 작게 만들면,
전송량이 수신량보다 적어 수신 버퍼 overflow를 막을 수 있다.

슬라이딩 윈도우

특징
흐름제어 기법
연속 전송 - 응답을 기다리지 않고 연속 패킷 전송
연속적으로 데이터를 전송할 수 있기 때문에 stop and wait 방식보다 전송 효율이 높다.
크기 동적 변환 - 윈도우 크기가 상황에 맞게 동적으로 변화
동작방식
수신 측은 수신 윈도우의 크기를 TCP 헤더에 기록하여 송신 측에 전송 - feedback
송신 측은 송신 윈도우를 수신 윈도우보다 작게 설정한다.

슬라이딩 윈도우 알고리즘

수신 측에서 설정한 윈도우 크기만큼 송신 측에서 확인 응답(ACK) 없이 전송할 수 있게 하여
흐름을 동적으로 조절하는 제어 알고리즘
윈도우에 포함되는 모든 패킷을 전송하고, 전송이 확인되는 대로 윈도우를 옆으로 옮겨(slide) 다음 패킷들을 전송하는 방식
즉 일정한 범위(윈도우)를 가지고 있는 것을 유지하면서 이것을 이동(sliding)하는 방식
참고