슬라이딩 윈도 문서 원본 보기
←
슬라이딩 윈도
둘러보기로 이동
검색으로 이동
문서 편집 권한이 없습니다. 다음 이유를 확인해주세요:
요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다:
사용자
.
문서의 원본을 보거나 복사할 수 있습니다.
{{위키데이터 속성 추적}} '''슬라이딩 윈도'''(Sliding window)는 두 개의 네트워크 호스트간의 [[패킷]]의 흐름을 제어하기 위한 방법이다. [[전송 제어 프로토콜|TCP]]와 같이 데이터의 전달을 보증하는 [[통신 프로토콜|프로토콜]]에서는 패킷 하나 하나가 정상적으로 전달되었음을 알리는 확인 신호(acknowledgement, 이하 ''ACK'')를 받아야하며, 만약 패킷이 중도에 잘못되었거나 분실되어 확인받지 못하는 경우, 해당 패킷을 재전송해야하는 필요가 있다. 슬라이딩 윈도는 일단 '윈도([[메모리]] [[버퍼 (전자 통신)|버퍼]]의 일정 영역)'에 포함되는 모든 패킷을 전송하고, 그 패킷들의 전달이 확인되는대로 이 윈도를 옆으로 옮김(slide)으로서 그 다음 패킷들을 전송하는 방식이다. 슬라이딩 윈도는 아직 확인을 받지 않고도 여러 패킷을 보내는 것을 가능케 하기 때문에, 매번 전송한 패킷에 대해 확인을 받아야만 그 다음 패킷을 전송하는 방법(stop-and-wait)을 사용하는 것보다 훨씬 네트워크를 효율적으로 사용할 수 있다. == 설명 == 일단 전송되는 패킷들에겐 일련번호(sequence number)가 매겨지게 된다. 가령 전송하고자하는 <math>n</math>개의 패킷이 있다고 하면 ''[1, 2, ..., n]''와 같이 일련번호를 매길 수 있다. 송신자(sender)는 다음의 세 가지 변수를 관리한다. * ''[[SWS]]'' (send window size) - 윈도 크기 * ''[[LAR (통신)|LAR]]'' (last acknowledgement received) - 마지막으로 확인받은 패킷의 번호 * ''[[LFS]]'' (last frame sent) - 마지막으로 보낸 패킷의 번호 그렇다면 송신자의 윈도는 ''[(LAR+1), ... , (LAR+SWS)]''가 된다. 송신자는 이 윈도에 포함되는 모든 패킷들을 전송하고, 수신자로부터 ''ACK''가 올때까지 기다린다. ''LFS''는 ''LAR+SWS''가 된다. 아무 문제가 없었다면 수신자로부터 ''LAR+1''의 ''ACK''를 가장 먼저 받게 된다. 그렇다면 송신자는 ''LAR''을 갱신하고, 그렇게되면 ''LAR+SWS''도 그만큼 증가하기 때문에 그 다음 패킷을 보낼 수 있게 된다. 또 만약 어느 패킷에 대해 ''ACK''를 받지 못한 경우, 송신자는 일정시간을 기다린 후, 확인받지 못한 패킷을 재전송한다. 이미 현재의 윈도에 해당되는 패킷을 모두 보냈는데 ''ACK''를 받지 못해 윈도를 이동시키지 못하고 있다면 필요한 ''ACK''가 오기까지 기다려야 한다. 수신자(receiver)도 윈도를 따로 운용한다. 수신자는 다음의 세 가지 변수를 관리한다. * ''RWS'' (receive window size) - 윈도 크기 * ''LAF'' (last acceptable frame) - 수신할 수 있는 마지막의 패킷의 번호 * ''LFR'' (last frame received) - 마지막으로 수신한 패킷의 번호 송신자와 비슷하게 수신자도 ''LAF''와 ''LFR''을 갱신하여 윈도를 이동시키며 패킷들을 접수한다. 받는 패킷들에 대한 ''ACK''를 보내주는 것이 수신자의 역할이다. 수신자가 보내는 ''ACK''는 마지막으로 도착한 패킷에 대한 ''ACK''가 아니고, 연속적으로 도착한 패킷중의 가장 마지막 패킷에 대한 ''ACK''이다. 예를 들어 1, 2, 3, 4, 6, 7의 패킷이 순서대로 도착하였다면, 수신자는 그 7번의 패킷을 받아 버퍼에 저장하고, 4번의 패킷에 대한 ''ACK''를 송신자에게 보낸다. 만약 그 다음에 도착하는 패킷이 5번이라면, 수신자는 그제서야 7번의 패킷에 대한 ''ACK''를 송신자에게 보내게 된다. 만약 윈도에 포함되지 않는 패킷이 도착하면, 수신자는 단순히 이 패킷을 버린다. 결론적으로 데이터의 전송이 되는 동안 아래의 두 가지 부등식이 항상 성립하여야한다. * <math>LFS - LAR \le SWS</math> * <math>LAF - LFR \le RWS</math> 네트워크의 상황에 따라 송신자나 수신자는 각자의 윈도 크기(''SWS'', ''RWS'')를 조절할 수도 있다. == 외부 링크 == * RFC 1323 - TCP Extensions for High Performance * [http://lwn.net/Articles/92727/ TCP window scaling and broken routers], 2004 * [http://www2.rad.com/networks/2004/sliding_window/ Sliding Window Demo] {{웹아카이브|url=https://web.archive.org/web/20110311055609/http://www2.rad.com/networks/2004/sliding_window/}} ([[Macromedia Flash|Flash]] required) * [https://web.archive.org/web/20100619032056/http://www.humboldt.edu/~aeb3/telecom/SlidingWindow.html Sliding Window Demo] ([[Macromedia Shockwave|Shockwave]] required) * [http://www.visualland.net/tcp_histrory.php?simu=tcp_swnd&protocol=TCP&title=2.Sliding%20Window&ctype=1 TCP Sliding Window simulation (interactive animation)]{{깨진 링크|url=http://www.visualland.net/tcp_histrory.php?simu=tcp_swnd&protocol=TCP&title=2.Sliding%20Window&ctype=1 }} [[분류:컴퓨터 네트워킹]] [[분류:정보 기술]]
이 문서에서 사용한 틀:
틀:깨진 링크
(
원본 보기
)
틀:웹아카이브
(
원본 보기
)
틀:위키데이터 속성 추적
(
원본 보기
)
슬라이딩 윈도
문서로 돌아갑니다.
둘러보기 메뉴
개인 도구
로그인
이름공간
문서
토론
한국어
보기
읽기
원본 보기
역사 보기
더 보기
검색
둘러보기
대문
최근 바뀜
임의의 문서로
미디어위키 도움말
특수 문서 목록
도구
여기를 가리키는 문서
가리키는 글의 최근 바뀜
문서 정보