본문 바로가기

Computer Science/컴퓨터 네트워크

전송 계층 프로토콜 : Selective repeat

반응형

Selective repeat이란?

Selective repeat는 한국말로 번역하면 선택적 반복이라고 한다.

 

Go-Back-N과 달리 말 그대로 손실되거나 timeout이 발생한 패킷만 재전송한다. 따라서 불필요하게 재전송하는 경우를 피할 수 있다.

sender는 올바르게 수신된 모든 패킷을 개별적으로 인식하고 필요에 따라 버퍼 패킷을 제공하여 상위 계층에 전달한다.

또한, 중간에 loss된 패킷이 발생하여 잘못된 순서의 패킷을 받았더라도 버퍼에 이를 저장해 둔 후, loss된 패킷만 다시 재전송하도록 하였다.

 

timer는 손실된 패킷을 보호하기 위해 다시 사용하지만 오직 한 패킷만이 time out에 전송되기 때문에 각 패킷은 자신만의 논리 타이머를 가져야 한다.

sender에서 보낸 패킷에 대한 ack가 잘 수신되었을 때, base를 하나 늘리고 다시 다음 sequence number와 데이터를 보내는 알고리즘을 가지고 있다.

 

 

 

 

Selective repeat 문제점

 

receiver에서 ACK가 loss된 경우 time out이 발생하고 sender로부터 다시 재전송하지만 이미 receiver는 그 패킷을 받았으므로 무시하게 된다.

따라서 ACK를 받았음에도 불구하고 base가 이동하지 않게 되며 전송 지연이 발생할 수 있다.

 

또한, 01230123과 같은 패킷 순서를 전송할 경우에 receiver에서 loss가 발생한다면 dilemma 문제가 발생할 수 있다.

이 문제를 해결하기 위해서는 window size를 N이라고 가정했을 때, 2의 N승 - 1이 sequence number이여야 이 문제를 해결할 수 있다.

반응형

'Computer Science > 컴퓨터 네트워크' 카테고리의 다른 글

전송 계층 프로토콜 : Go-Back-N  (0) 2021.08.23
rdt 3.0 (stop- and- wait)  (0) 2021.08.23