안녕하세요!

FE 개발자 유진주입니다.

CS/네트워크

[컴퓨터네트워크] Chapter3.4 오류복구1_Stop-and-Wait ARQ

ypearl 2023. 12. 1. 22:51

Chapter3.4  오류복구1_Stop-and-Wait ARQ

  • 오류 복구 개념
  • Stop-and-Wait ARQ(Automatic Repeat Request)
  • Stop-and-Wait ARQ with SN(Sequence Number, 순서번호)

 

전송 오류 복구 개념

- 정보 전송 단위

  • 데이터그램(datagram): IP, UDP
  • 세그먼트(segment): TCP

 

- 세그먼트 구조

 

- 세그먼트 오류

  • 1) 세그먼트 훼손: 훼손된 세그먼트 도착(Checksum으로 확인)
  • 2) 세그먼트 손실(loss): 세그먼트 미도착(중간 통신장치(라우터/스위치)의 버퍼 오버플로우)

 

- 세그먼트 수신 확인

  • 세그먼트 정상 수신 → 수신확인(ACK) 세그먼트 회신
  • 훼손 세그먼트 수신 폐기 미수신
  • 세그먼트 미수신 인지 불가

 

- ACK(acknowledgement)

  • 수신자가 데이터 세그먼트의 정상수신을 확인하기 위해 송신자에게 보내는 특수한 세그먼트

 

# 세그먼트 미수신 확인

  • 세그먼트 전송 후 타이머(timer) 개시
  • 타이머 종료시까지 ACK 미도착

 

# 타이머 설정

  • RTT(Round Trip Time)와 연계된 함수

 

# 오류 세그먼트 복구 절차

1) 세그먼트 전송, 타이머 시작

2) 세그먼트 타이머 종료할 때까지 ACK 미도착

3) 세그먼트를 재전송하고 타이머 재시작

 

 

Stop-and-Wait ARQ

- ARQ

: Automatic Repeat Request

 

- 송신자

1) 세그먼트 송신 후 복제본을 버퍼에 유지

2) 재전송 타이머 시작

3) 타이머 종료 전 ACK 수신 시 복제본 폐기, 타이머 종료

4) 타이머 종료 전 ACK 미수신 시 세그먼트 재전송, 타이머 재시작

 

- 수신자

1) 정상 세그먼트 수신 시 ACK 회신

 

- 문제점

1) ACK 세그먼트에 오류 발생 시 중복 전송

2) 수신자 중복 세그먼트 구분 불가 (정상수신인지, 중복수신(재전송)인지)

 

 

Stop-and-Wait ARQ with SN

- SN(Sequence Number): 순서번호

  • 각 세그먼트에 대한 순서 번호: 동일 종류 세그먼트 간 구분
  • 송신 SN: 현재 송신 세그먼트 번호
  • ACK SN: 다음 송신 세그먼트 번호(송신 SN+1)

 

 

 

- SN 범위: [0, 1]

  • SN 필드 크기: 1비트
  • Alternating Protocol

*Stop-and-Wait 에서는 SN을 0 또는 1만 사용해도 충분히 정상 전송과 재전송을 구분 가능함!

 

 

- 문제점: 낮은 링크 사용 효율성

  • ACK가 도착할 떄까지 전송 대기
  • 대기 시간 동안 링크 미사용 → 링크 사용률 저하

 

- 세그먼트 왕복 지연시간(RTT - Round Trip Time)

  • 세그먼트 송신 후 ACK 수신까지 걸리는 지연시간

 

- 링크 효율

  • 세그먼트 크기: 1,000비트
  • 링크 전송속도: 1Mbps
  • RTT: 20ms
  • 20ms 동안 송신 가능 비트수: 1,000,000비트/s X 0.02s = 20,000비트
  • 20ms 동안 실제 송신 비트수: 1,000qlxm
  • 링크 효율: 1,000/20,000 = 0.05(5%)