반응형

 

-요약-

슬라이딩 윈도(Sliding window)는 두 개의 네트워크 호스트간의 패킷의 흐름을 제어하기 위한 방법이다.

TCP와 같이 데이터의 전달을 보증하는 프로토콜에서는 패킷 하나하나가 전달되었음을 확인 신호(acknowledgement, 이하 ACK)를 받아야하며, 만약 패킷이 중도에 잘못되었거나 분실되어 확인받지 못하는 경우, 해당 패킷을 재전송해야하는 필요가 있다. 슬라이딩 윈도는 일단 '윈도(메모리 버퍼의 일정 영역)'에 포함되는 모든 패킷을 전송하고, 그 패킷들의 전달이 확인되는대로 이 윈도를 옆으로 옮김(slide)으로서 그 다음 패킷들을 전송하는 방식이다.

슬라이딩 윈도는 아직 확인을 받지 않고도 여러 패킷을 보내는 것을 가능케 하기 때문에, 매번 전송한 패킷에 대해 확인을 받아야만 그 다음 패킷을 전송하는 방법(stop-and-wait)을 사용하는 것보다 훨씬 네트워크를 효율적으로 사용할 수 있다.


-정의-
1)송신측에서는 윈도우 사이즈 갯수 만큼의 프레임을 연속해서 전송할 수 있으며 수신측에서는 이 윈도우 크기를 조절해 나간다. '윈도우 크기'란 한꺼번에 송신측이 연속해서 전송할 수 있는 최대 프레임의 갯수를 뜻한다. 아래 그림 (b)에서 송신측에서는 연속해서 W 개의 프레임을 전송하고 있다. 수신측에서는 적절한 간격으로 이 W를 조절해 나감으로써 송신측의 데이타 흐름을 조절해 나간다.

image

2)슬라이딩 윈도우(sliding window)를 이용한 흐름제어 continuous ARQ는 윈도우 개념을 사용하는데, 윈도우란 송신측에서 수신측의 응답(ACK/NAK)없이 전송하는 프레임의 수를 제한하는 것으로 전송 가능한 최대 프레임 수를 최대 윈도우 크기라고 한다. 초기화 시 윈도우를 최대 윈도우 크기로 설정하여 송신측에서 프레임을 전송 시마다 윈도우를 하나씩 줄이고, 응답이 접수될 때마다 윈도우를 하나씩 늘리는데, 윈도우가 있는 한 계속 프레임을 전송하는 방법으로  흐름제어하는 것을 슬라이딩 윈도우를 이용한 흐름제어라 한다.

 

슬라이딩 윈도우 방식 설명※

전 이중 링크로 연결된 두 스테이션이 있다고 가정을 하자. 스테이션 B는 n(window size)개의 프레임을 수신할 수 있으며,  A는 B의 ACK를 기다리지 않고 n개의  프레임을 보내는 것이 가능하다. 각각의 프레임은 순서번호가 있다.  따라서 B는 전송이 기대되는 다음 프레임의 순서번호를 포함한 ACK를 A에게 전송함에 의해 ACK 한다.  이 ACK는 B가 규정된 번호로 시작되는 다음 n개의 프레임을 수신 할 준비가 되어 있음을 암시적으로 통보하는 것이다.
예를 들면 B는 프레임 2, 3, 4를 수신하고, 순서번호 5를 가진 ACK를 A에게 보냄에 의해 B는 한 번에 프레임 2, 3, 4를 ACK 한 것이 된다. A는 송신하려는 순서번호의 목록을 유지하고  B는 수신할 준비가 되어 있는 순서번호 목록을 유지한다. 이들 각 목록은 프레임의 윈도우로 생각할 수 있다. 이러한 동작을 슬라이딩 윈도우 흐름제어라고 한다.

참고
http://ko.wikipedia.org/wiki
www.google.com
 
반응형

+ Recent posts