슬라이딩 윈도우 프로토콜(Sliding Window Protocol)
은 데이터 통신에서 사용되는 흐름 제어 기법 중 하나입니다.
슬라이딩 윈도우 프로토콜
은 송신자와 수신자가 각각 윈도우라는 버퍼를 가지고 있으며, 윈도우의 크기에 따라 한 번에 보낼 수 있는 패킷의 개수가 결정됩니다.
슬라이딩 윈도우
는 윈도우의 크기를 동적으로 조절하면서 효율적인 패킷 전송을 가능하게 합니다.
송신자
는 윈도우의 크기만큼 패킷을 전송하고, 각 패킷에 순서 번호를 부여합니다.
수신자
는 패킷을 받으면 순서 번호에 따라 자신의 윈도우에 저장하고, 가장 작은 순서 번호를 가진 패킷부터 상위 계층으로 전달합니다. 또한 송신자에게 ACK(acknowledgement) 메시지
를 보내어 받은 패킷을 확인합니다.
송신자
는 ACK 메시지
를 받으면 자신의 윈도우를 오른쪽
으로 이동시키고, 새로운 패킷을 전송합니다. ACK 메시지가 오지 않은 패킷은 타이머를 설정하여 일정 시간이 지나면 재전송합니다.
수신자
는 자신의 윈도우를 왼쪽
으로 이동시키면서 상위 계층으로 전달할 수 있는 패킷을 찾습니다. 만약 순서대로 받지 못한 패킷이 있으면 NAK(negative acknowledgement) 메시지
를 보내어 재전송을 요청합니다.