Chapter3.4 오류복구3_Selective_Repeat ARQ
- 파이프라이닝(Pipelining)
- Selective_Repeat 작동원리
- Selective_Repeat ARQ 예제
- 송신 윈도우 최대 크기
파이프라이닝(Pipelining)
(*Go-back-N과 Seletive_Repeat)
: ACK가 회신 되기 전 RTT 동안 링크에 M개의 세그먼트를 전송
- 장점
- 링크 효율 제거(stop-and-wait보다 M배 높은 효율)
- 요구사항
- 최대 파이프라이닝 세그먼트의 수 M(송신 윈도우)보다 큰 순서번호(Sequence Number) 사용
- SN(Sequence Number) 필드 m 비트: 2^m > M (m과 M의 관계는 오류복구 유형에 따라 결정)
- 순서번호: [0, 2^m -1], mod 2^m
*수신자는 재전송된 세그먼트와 정상적인 세그먼트를 구분할 수 있어야 함!
- 오류복구 유형
- Go-back-N ARQ
- Selective-Repeat ARQ
Selective_Repeat 작동원리
: 오류 세그먼트만 재전송
- 송신자 동작 절차
1) ACK가 회신 되는 RTT 동안 링크에 최대로 송신 윈도우 크기인 Ssize개의 세그먼트를 전송
2) 누적 ACK(accumulative ACK) 수신하면, 송신 윈도우를 누적 ACK 수만큼 이동(슬라이딩 O)
(* Go-back-N은 ACK를 받은 세그먼트만큼 이동(슬라이딩))
3) 비누적 ACK(non-accumulative ACK) 수신하면 해당 세그먼트의 ACK 수신 사실 기록(슬라이딩 X)
4) 세그먼트 재전송 타이머가 종료될 때까지 ACK가 수신되지 않으면 해당 세그먼트 재전송
- 송신 윈도우(send window)
- 송신가능 순서번호 범위
- 송신 후 버퍼에 유지되어야 할 세그먼트의 범위 (재전송 가능성 있기 때문)
- 누적 ACK(accumulative ACK)
- 송신 윈도우 내에서 누적적으로 순서 번호가 맞는 ACK
- 비누적 ACK(non-accumulative ACK)
- 송신 윈도우 내에서 누적적으로 순서 번호가 맞지 않는 ACK // 1,2,3, -(4는 x) , 5
*Go-back-N과는 완전 다른 방식으로 처리!
- 수신자 동작 절차
1) 송신 윈도우와 동일한 크기의 수신 윈도우(receive window) Rsize 유지 (= Ssize: 송신 위도우 사이즈)
2) 누적 정상 세그먼트를 수신하면 ACK 회신하고 누적 정상 세그먼트 수만큼 수신 윈도우 이동
3) 비누적 정상 세그먼트를 수신하면 ACK 회신하고 해당 세그먼트를 버퍼에 유지
- 수신 윈도우(receive window) : Rsize
- 수신 가능한 세그먼트의 범위
- 송신 윈도우 크기와 동일
- 수신자 버퍼 관리
- 비누적 정상 세그먼트를 수신 버퍼에 유지
- 다음 수신 가능 세그먼트: 수신 버퍼에 유지되고 있지 않은 수신 윈도우 내의 모든 세그먼트
- [예제] 수신 윈도우 크기: 8
- 수신된 비누적 정상 세그먼트: 4, 7, 9
순서번호(SN): 4비트 [0~15]
Go-back-N ~ 윈도우의 최대 크기: (2^m) - 1 =(2^4 - 1) = 15
Selective-Repeat ~ 윈도우의 ?? 크기: (2^(m-1)) = 2^3 = 8
Selective_Repeat ARQ 예제
송신 윈도우 최대 크기
- SN 필드 크기가 m비트일 때 송신 윈도우 크기: Ssize
- Ssize의 최대 크기 = 2^(m-1) : Selective-Repeat
*(2^m - 1) : Go-back-N
- Ssize의 최대 크기 = 2^(m-1) : Selective-Repeat
- 순서번호 범위: [0, 2^m - 1], m = 2 가정
- SN : [0 ~ 3]
- 송신/수신 윈도우 크기: 2
- 수신 최대 윈도우
- SN 필드 크기: 4비트
- 수신 윈도우 최대 크기: 8
'CS > 네트워크' 카테고리의 다른 글
[컴퓨터네트워크] Chapter3.5 TCP 세그먼트 구조와 재전송 타이머 (0) | 2023.12.12 |
---|---|
[컴퓨터네트워크] Chapter3.5 TCP 연결관리 (0) | 2023.12.04 |
[컴퓨터네트워크] Chapter3.4 오류복구2_Go-Back_N ARQ (0) | 2023.12.02 |
[컴퓨터네트워크] Chapter3.4 오류복구1_Stop-and-Wait ARQ (1) | 2023.12.01 |
[컴퓨터네트워크] Chapter3.3 비연결형 트랜스포트: UDP, 검사합(checksum) (0) | 2023.11.30 |