Reliable data transfer

saewoohan·2024년 5월 25일
0

Computer Network

목록 보기
4/14
post-thumbnail

해당 포스팅은 한양대학교 이석복 교수님의 컴퓨터네트워크 강의를 정리한 글입니다.
http://www.kocw.net/home/search/kemView.do?kemId=1169634

1. Principles of Reliable Data Transfer

  • unreliable하다는 것은 Message error또는 Message lose가 있는 것이다.

1) channel with packet errors (no lose)

  • Error detection (에러가 있는지 없는지 우선 판단한다. checksum bits를 사용)
  • Feedback (실제로 에러가 있었다면 피드백이 필요하다.)
    Acknowledgements (ACKs): 제대로 받았다고 알려주는 것
    Negative acknowledgements (NAKs): 에러가 있다고 알려주는 것
  • Retransmission
    sender는 NAK를 받으면 재전송한다.

  • 위 그림처럼 에러를 발견하고 NAKs를 주면 같은 packet를 retransmission한다.
  • 이때, receiver측에서는 중복인지 아닌지 어떻게 알 수 있을 것인가?
    -> Sequence Number

2) Handling Duplicate Packets

  • sender는 sequence number를 각 packet에 추가한다.
  • Sender는 현재 packet을 ACK/NAK여부에 따라 재전송한다.
  • Receiver는 duplicate packet을 버린다.

packet error를 판단하는 매커니즘은

  • Error detection, Feedback, Retransmission, Sequence#

3) NAK-free protocol

  • ACKs만 사용하는 프로토콜이다.
  • NAK대신, 가장 마지막으로 받아들인 올바른 packet에 대한 ACK를 보낸다.

4) Packet lose

  • Packet lose의 경우에는 어떻게 처리할 수 있을까?
    -> Timer
  • sender는 reasonable한 시간동안 ACK를 기다린다.
  • 그래도 오지 않는다면, retransmission

현재 예시는 packet 통신 과정에서 기다리지만, 실제로는 pipelined protocol로 이루어 진다. (한꺼번에 주고 받는 과정)
: go-Back-N, selective repeat

0개의 댓글