Chapter3.4 오류복구2_Go-Back_N ARQ
- 파이프라이닝(Pipelining)
- Go-back-N 작동원리
- Go-back-N ARQ 예제
- 송신 윈도우 최대 크기
- 장단점
파이프라이닝(Pipelining)
: ACK가 회신 되기 전 RTT 동안 링크에 M개의 세그먼트를 전송
- 장점
- 링크 효율 제고(stop-and-wait보다 M배 높은 효율)

Go-back-N 작동원리
: 오류 세그먼트부터 이후의 모든 세그먼트 재전송
- 송신자 동작 절차
1) ACK가 회신되는 RTT 동안 링크에 최대 M개의 세그먼트를 전송하고 버퍼에 유지(송신 윈도우 = M)
2) ACK 수신하면 해당 세그먼트(첫번째 세그먼트)을 버퍼에서 제거하고 송신가능 순서번호 범위를 1씩 이동(송신 윈도우 슬라이딩)
3) 세그먼트 재전송 타이머가 종료될 떄까지 ACK가 수신되지 않으면 해당 세그먼트부터 송신 윈도우의 모든 세그먼트 재전송
- 송신 윈도우(send window)
- 송신가능 순서번호 범위
- 송신 후 버퍼에 유지되어야 할 세그먼트의 범위
- 송신자 버퍼 관리
- Ssize: 송신 슬라이딩 윈도우 크기(send sliding window size)
- ACK 없이 송신 가능한 최대 세그먼트의 수
- Ssize = 2^m - 1, m은 순서번호 필드 크기(비트수)
- Sf: ACK가 수신되지 않은 첫번째 세그먼트 순서번호
- ACK가 수신될 때마다 Sf = (Sf + 1) mod 2^m // 15 이상, 0, 1...
- 송신 버퍼
- [Sf, Sn -1] 세그먼트를 재전송을 위해 버퍼에 유지
*송신 윈도우의 크기가 커질수록, 버퍼가 커져야 함.
*[참고] mod의 정의


[예시] 송신 윈도우 관리: SN 필드 크기 4비트 [ 0 ~ 15]
2^m - 1 = 2^4 - 1 = 15
→ 송신 윈도우에 들어갈 수 있는 최대 개수( 0~ 14)
실제 들어있는 세그먼트 수 [ 0, 6 ] 일때,
0~2 3개의 ACK를 보낼 경우
오른쪽으로 3칸만큼 슬라이딩!
따라서, Go-back-N 오류 복구 기법은 슬라이딩 프로토콜이라고도 함.
- 수신자 동작 절차
- 다음 순서번호 Rn의 세그먼트를 정상적으로 수신하면 ACK(Rn + 1) 회신
- 다음 순서번호 Rn이 아닌 모든 세그먼트는 폐기 → 누적 수신 확인(Accumulative ACK)
- 수신자 버퍼 관리
- Rn: 다음에 수신할 세그먼트의 순서번호
- 세그먼트가 수신될 때마다 Rn = (Rn + 1) mod 2^m
- 수신 윈도우 크기: 1
- 수신자 버퍼 크기: 1
Go-back-N ARQ 예제

* 위에서 sgmt 3, 4, 5 보냈지만,
간단한 동작을 위해 time-out 된 2부터 다시 보냄!
송신 윈도우 최대 크기
- 순서번호(SN) 필드 크기가 m비트일 때 송신 윈도우 최대 크기(Smax)
- Smax : (S^m - 1)
- 순서번호 필드 크기 m = 2 가정 → Smax = 3

- 누적수신확인이 완료되어 ACK를 순서대로 보냈는 데,
ACK 전체가 손실되었을 경우
=> 윈도우 크기는 최대 2^m -1 까지만 가능하다!
(그 이상은 동작하지 않을 수 있음)
장단점
- 장점
- Stop-and-wait 대비 고효율성
- 간단한 수신자 버퍼 관리 (다음 세그먼트 수신용 버퍼)
- 단점
- 오류 세그먼트 이후 도착한 정상 세그먼트 재전송
→ 불필요한 재전송 회수 증가
→ 링크 효율 저하
- 오류 세그먼트 이후 도착한 정상 세그먼트 재전송
'CS > 네트워크' 카테고리의 다른 글
[컴퓨터네트워크] Chapter3.5 TCP 연결관리 (0) | 2023.12.04 |
---|---|
[컴퓨터네트워크] Chapter3.4 오류복구3_Selective_Repeat ARQ (1) | 2023.12.03 |
[컴퓨터네트워크] Chapter3.4 오류복구1_Stop-and-Wait ARQ (1) | 2023.12.01 |
[컴퓨터네트워크] Chapter3.3 비연결형 트랜스포트: UDP, 검사합(checksum) (0) | 2023.11.30 |
[컴퓨터네트워크] Chapter3.1~2 트랜스포트 계층 서비스 / 다중화와 역다중화 (0) | 2023.10.25 |