sliding windows – 슬라이딩 윈도우
슬라이딩 윈도우는 윈도우잉이라고도 알려진 기술로서, 인터넷의 TCP에 의해 두 개의 컴퓨터 또는 네트웍 호스트간에 패킷 흐름을 제어하기 위한 방법으로 사용된다.
TCP에서는 전송된 모든 데이터가 수신측 호스트에 의해 확인되어야 한다.
그러나 슬라이딩 윈도우는 하나의 확인으로 다수의 패킷 데이터를 확인할 수 있는 방법이다.
TCP는 상위의 응용계층 (예를 들어 HTTP 또는 FTP 등)과 데이터를 수신하는 하위의 계층 (OSI 참조모델에서 데이터링크 계층) 사이에 위치하는 메모리 버퍼를 포함한다.
그 버퍼는 TCP로 하여금 상위의 응용계층과는 독립적으로 데이터를 수신하고 처리할 수 있게 해준다.
다른 말로 말하면, 상위 응용계층이 자신의 속도로 데이터를 처리하는 동안, TCP는 이 버퍼 공간을 데이터를 미리 읽어오는데 사용할 수 있다는 것이다.
수신측 시스템은 데이터를 이상 없이 수신했다는 사실과, 현재 사용하고 있는 버퍼의 크기를 전송측 시스템에 알리기 위해 윈도우에 관한 정보를 보낸다.
예를 들어 윈도우 크기가 “0”이라고 통보되었다면, 전송시스템은 다음 데이터 뭉치를 보내기 전에 확인 신호를 기다려야만 한다.
만약 수신측 시스템이 하나의 데이터 패킷의 크기보다 더 큰 버퍼 크기를 통보하였다면, 전송측 시스템은 확인 신호를 접수하기 전이라도 여러 개의 데이터 뭉치를 보낼 수 있는 여유가 있음을 이해한다.
확인 신호를 받기 전에 여러 개의 데이터 패킷들을 전송할 수 있다는 것은, 매번 전송을 할 때마다 확인 신호를 접수해야 하는 경우보다, 더욱 빠르고 효율적으로 데이터를 전송할 수 있게 해준다.
TCP에 관해 좀더 많은 정보를 원한다면 RFC 793과 RFC 1180을 참고하시기 바랍니다.