Computer Network
[컴퓨터 네트워크] 오류 복구3: Selective_Repeat ARQ
JunsuKim
2022. 10. 9. 17:59
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