흐름제어의 하나의 방식으로,
윈도우 크기를 이용해 패킷의 연속 전송과 송수신 크기 동적 변환을 가능하게 합니다.
즉 일정한 범위인 윈도우 크기를 유지하면서 이것을 이동(sliding)하는 방식으로 데이터를 전송하여 슬라이딩 윈도우라는 이름을 가지고 있습니다.
윈도우 개념
•
윈도우는 송신측과 수신측에 각각 송신 윈도우( awnd ), 수신 윈도우( rwnd )가 존재
◦
송신 윈도우( awnd ) : 송신자가 ACK를 수신 받지 않아도 한 번에 연속적으로 전송할 수 있는 데이터 양을 의미
◦
수신 윈도우 (rwnd) : 수신자가 수신 버퍼 overflow가 일어나지 않는 한에서 한 번에 받을 수 있는 데이터 양을 의미
•
이 윈도우 개념을 이용해서, 송신 윈도우의 크기를 수신 윈도우 보다 작게 만들면,
전송량이 수신량보다 적어 수신 버퍼 overflow를 막을 수 있다.
슬라이딩 윈도우
특징
•
흐름제어 기법
•
연속 전송 - 응답을 기다리지 않고 연속 패킷 전송
◦
연속적으로 데이터를 전송할 수 있기 때문에 stop and wait 방식보다 전송 효율이 높다.
•
크기 동적 변환 - 윈도우 크기가 상황에 맞게 동적으로 변화
동작방식
•
수신 측은 수신 윈도우의 크기를 TCP 헤더에 기록하여 송신 측에 전송 - feedback
•
송신 측은 송신 윈도우를 수신 윈도우보다 작게 설정한다.
슬라이딩 윈도우 알고리즘
•
수신 측에서 설정한 윈도우 크기만큼 송신 측에서 확인 응답(ACK) 없이 전송할 수 있게 하여
흐름을 동적으로 조절하는 제어 알고리즘
•
윈도우에 포함되는 모든 패킷을 전송하고, 전송이 확인되는 대로 윈도우를 옆으로 옮겨(slide) 다음 패킷들을 전송하는 방식
•
즉 일정한 범위(윈도우)를 가지고 있는 것을 유지하면서 이것을 이동(sliding)하는 방식
참고