Computer Network

[컴퓨터 네트워크] 오류 복구1: Stop-and-wait ARQ

JunsuKim 2022. 10. 5.
728x90

정보 전송 단위

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

IP, UDP는 오류 복구 지원을 하지 않는다.

세그먼트 구조

세그먼트 오류

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

세그먼트 수신 확인

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

ACK(acknowledgement)

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

세그먼트 미수신 확인

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

타이머 설정

  • RTT(Round Trip Time)와 연계된 함수
  • RTT보다 Timer를 좀 더 크게 잡는 것이 좋다.

오류 세그먼트 복구 절차

  1. 세그먼트 전송, 타이머 시작
  2. 세그먼트 타이머 종료할 때까지 ACK 미도착
  3. 세그먼트를 재전송하고 타이머 재시작

Stop-and-Wait ARQ

ARQ

  • Automatic Repeat Request

송신자

  • 세그먼트 송신 후 복제본을 버퍼에 유지
  • 재전송 타이머 시작
  • 타이머 종료 전 ACK 수신 시 복제본 폐기, 타이머 종료
  • 타이머 종료 전 ACK 미수신 시 세그먼트 재전송, 타이머 재시작

수신자

  • 정상 세그먼트 수신 시 ACK 회신

문제점

  • ACK 세그먼트에 오류 발생 시 중복 전송
  • 수신자 중복 세그먼트 구분 불가

SN(Sequence Number): 순서 번호

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

송신 SN과 ACK SN

SN 범위: [0, 1]

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

문제점

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

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

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

링크 효율

  • 세그먼트 크기: 1000비트
  • 링크 전송속도: 1Mbps
  • RTT: 20ms
  • 20ms 동안 송신 가능 비트 수: 1,000,000비트/s * 0.02s = 20,000비트
  • 20ms 동안 실제 송신 비트 수: 1,000 비트
  • 링크 효율: 1000/20000 = 0.05(5%) -> 링크 효율 낮음
728x90

댓글