School Lecture Study/컴퓨터 통신

8. 신뢰성 있는 전송 (Stop-and-Wait)

vㅔ로 2022. 10. 26. 01:29
728x90

개요

  • 오류에 의해 변질된 프레임의 복구
  • 오류 수정 코드 (Error Correction Codes: ECC)
    • 순방향 수정 (Forward Error Correction: FEC) → 수신자가 수정하는 코드
  • 자동 반복 요청 (Automatic Repeat reQuest: ARQ) : 재전송
    • ACK와 타임아웃 (Acknowledgements and Timeouts)
    • 역방향 수정 (Backward Error Correction)
  • 오류 중에는 프레임 자체가 성립이 안 되는 framing error 도 존재한다.
    • 이 경우에는 수신 쪽이 frame 수신 여부를 인식하지 못하는 frame loss이다.

오류 수정 코드 (Error Correcting Codes)

  • Forward Error Correction (FEC)
  • 재전송이 용이하지 않은 경우에 유용하다.
    • Time이 정해진 것은 재전송하기 힘들다.
    • 전화 같은 실시간 통신에서 재전송을 통해 늦게 수신된 데이터는 가치가 없다.

재전송을 통한 오류 복구

  • 타임아웃, 재전송용 버퍼 처리 등에 필요하다.
  • 어댑터에서 단독으로 처리하는데 한계가 있다.
  • 2계층 기능이지만 노드 내 소프트웨어로 처리한다.

ARQ: 응답 (ACK) 및 타임아웃

  • Frame을 전송하고 Timeout을 설정한다.
  • 송신자가 설정한 Timeout 시간까지 수신자가 ACK를 보내야 한다.
  • Timeout 시간동안 ACK가 도착하지 않았다면 재전송한다.

ARQ: 순서 번호 (Seq. #)

  • ACK의 분실 경우: 중복 data 문제가 발생한다. (송신자는 ACK를 받지 못하면 재전송하므로)
    • 순서 번호가 필요하고, 수신된 중복 data는 버린다.
    • 중복된 데이터라고 하더라도 ACK는 반드시 전송해야 한다.

Automatic Repeat Request

  • Error detection
  • Acknowledgment
  • Retransmission after timeout
  • Negative Acknowledgment (NAK - optional)
    • frame 오류가 발생하면 NAK을 보낼 수 없기 때문에 Time out은 꼭 써야하고, NAK은 선택 사항이다.

Piggybacking

  • Data와 ACK를 한 번에 보내는 것

Stop and Wait: Timing 분석

  • 지연 시간이 짧아지고 Data 크기가 증가하면 효율이 증가한다.
  • 링크 효율은 Frame의 크기에 비례하고, 전파 지연시간에 반비례한다.

Frames

  • 거리가 동일할 때 대역폭은 링크의 부피에 비례한다.

정지대기 (Stop-and-Wait)

  • outstanding frame = 1, 오류 검출도 한 개만 한다.
  • 문제점 : 파이프를 꽉 채운 상태로 유지하지 못한다.

Ex. 1.5Mbps link x 45㎳ RTT = 67.5Kb (8KB). 프레임의 사이즈가 1KB인 경우, 정지 대기(stop-and-wait)는 링크 용량의 1/8만을 사용 한다. 송신자는 ACK를 기다리기 전에 8개의 프레임을 보낼 수 있는 것이 바람직하다.

728x90

'School Lecture Study > 컴퓨터 통신' 카테고리의 다른 글

10. 슬라이딩 윈도우 구현  (0) 2022.10.26
9. 슬라이딩 윈도우 (Sliding-Window)  (0) 2022.10.26
7. 오류 검출  (0) 2022.10.25
6. 프레이밍 (Framing)  (0) 2022.10.25
5. 인코딩 (Encoding)  (0) 2022.10.25