슬라이딩 윈도우 프로토콜::운영체제

2020. 6. 30. 21:55computer science/operating system

슬라이딩 윈도우 프로토콜이란?

 두 호스트 간 데이터 전송을 위한 일반적인 통신 프로토콜로 오류 제어와 흐름 제어를 지원하는 방식입니다.

 

 - 송신 호스트는 정보 프레임(전송 데이터, 오류 검출 코드 등)을 순서 번호에 따라 순차적으로 전송합니다.

 - 정보 프레임을 수신한 수신 호스트가 응답하는 순서 번호는 정상적으로 수신한 번호가 아닌 다음 수신하기를 기대하는 회신 번호를 사용합니다.

 - 송신 호스트는 송신한 정보 프레임을 자신의 내부 버퍼인 송신 윈도우를 유지해야 합니다. 송신 호스트가 관리하는 송신 윈도우는 전송되었지만, 긍정 응답(ACK)이 회신되지 않은 프레임을 보관합니다.

 - 수신 호스트는 수신한 정보 프레임을 보관하기 위한 내부 버퍼인 수신 윈도우를 유지해야 합니다. 수신 호스트가 관리하는 수신 윈도우는 프로토콜의 동작 방식에 따라 크기가 달라집니다.

 - 동작 방식으로 Go-back N, 선택적 재전송, Piggy Backing 방식이 있습니다.

 

Go-back N 방식

 

 오류 복구 과정에서 오류가 발생한 프레임을 포함해 이후에 전송되는 모든 정보 프레임을 재전송하는 방식입니다.

 120번부터 130번까지의 프레임을 전송했지만, 124번에서만 오류가 발생했다는 것을 수신 호스트가 확인해 부정 응답(NAK)을 받았다면 124번부터 프레임을 재전송합니다.

 

선택적 재전송 방식

 

 수신 호스트가 올바르게 수신한 정보 프레임까지 버리는 Go-back N 방식을 보완한 방식입니다.

 120번부터 130번까지의 프레임을 전송했지만, 124번에서만 오류가 발생했다는 것을 수신 호스트가 확인해 부정 응답(NAK)을 받았고, 124번을 제외한 126번까지 긍정 응답(ACK)을 받았다면 124번을 재전송하고, 127번부터 프레임을 재전송합니다.

 

Piggy Backing 방식

 

 송신 호스트에서 정보 프레임을 전송하면서 응답 프레임을 같이 수행할 수 있도록 프레임 구조를 재정의하여 양방향으로 전송하는 방식입니다.

 응답 프레임의 전송 횟수를 줄여 전송 효율을 높일 수 있습니다.

 

 

슬라이딩 윈도우 이전의 Stop and Wait 방식

 

 송신 윈도우의 크기가 1입니다.

 프레임 전송 시간이 오래 걸리는 경우 전송 효율이 극단적으로 떨어지게 됩니다.

 송신 호스트에서 하나의 프레임을 보내면 수신 호스트에서 받고 다시 응답을 송신 호스트에 보내고, 이 응답을 받았을 때 다시 프레임을 전송할 수 있습니다.

 

 

순서 번호

 

 프레임 별로 부여되는 일련의 번호입니다.

 수신 호스트와 송신 호스트가 정보 프레임을 구별하기 위해 순서 번호를 사용합니다.

 

 순서 번호의 최댓값이 송신 윈도우 크기보다 커야 합니다.

 순서 번호를 지정할 때 최댓값 이후에 다시 0번으로 순서 번호를 지정하기 때문에 송신 윈도우의 크기가 더 클 경우 순서 번호가 겹치는 현상이 발생할 수 있습니다(수신 윈도우의 크기 >= 송신 윈도우 크기).

 

윈도우 크기

 

 응답 프레임을 받지 않고도 연속으로 전송할 수 있는 프레임 개수입니다.

 윈도우에 포함되는 정보 프레임의 관리는 순서 번호를 기반으로 이뤄지고, 낮은 순서 번호부터 처리됩니다.