Computer Network

[컴퓨터 네트워크] 오류 복구3: Selective_Repeat ARQ

JunsuKim 2022. 10. 9.
728x90

Selective-Repeat

  • 오류 세그먼트만 재전송

송신자

  • ACK가 회신되는 RTT동안 링크에  최대로 송신 윈도우 크기인 Ssize개의 세그먼트를 전송한다.
  • 누적 ACK(accumulative ACK)를 수신하면 송신 윈도우를 누적 ACK 수만큼 이동한다.
  • 비누적 ACK(non-accumulative ACK)를 수신하면 해당 세그먼트의 ACK 수신 사실을 기록한다.
  • 세그먼트 재전송 타이머가 종료될 때까지 ACK가 수신되지 않으면 해당 세그먼트를 재전송한다.

송신 윈도우(send window)

  • 송신 가능한 순서번호 범위
  • 송신 후 버퍼에 유지되어야 할 세그먼트의 범위

누적 ACK(accumulative ACK)

  • 송신 윈도우 내에서 누적적으로 순서 번호가 맞는 ACK

비누적 ACK(non-accumulative ACK)

  • 송신 윈도우 내에서 누적적으로 순서 번호가 맞지 않는 ACK

수신자 동작 절차

  • 송신 윈도우와 동일한 크기의 수신 윈도우 Rsize유지
  • 누적 정상 세그먼트를 수신하면 ACK를 회신하고 누적 정상 세그먼트 수만큼 수신 윈도우를 이동한다.
  • 비누적 정상 세그먼트를 수신하면 ACK를 회신하고 해당 세그먼트를 버퍼에 유지한다.

수신 윈도우(receive window): Rsize

  • 수신 가능한 세그먼트의 범위
  • 송신 윈도우 크기와 동일

수신자 버퍼 관리

  • 비누적 정상 세그먼트를 수신 버퍼에 유지
  • 다음 수신 가능 세그먼트: 수신 버퍼에 유지되고 있지 않은 수신 윈도우 내의 모든 세그먼트

예시) 수신 윈도우 크기: 8

  • Go-Back-N에서는 송신 윈도우의 크기가 2m - 1이었다. 하지만 Selective-Repeat는 2m-1의 크기를 갖는다.

Selective-Repeat ARQ 예제

 

송신 윈도우의 최대 크기

728x90

댓글