신뢰적인 데이터 전송

JSG·2024년 3월 21일
0

신뢰적인 데이터 전송(Reliable data transfer, RDT)

  • 통신을 하면 패킷을 받지 못하거나, 깨지는 경우가 발생한다.
  • 이런 경우를 예방하거나 조치를 취하여 신뢰적으로 data를 전송하는 개념이다.
    • ex1) Segment를 받지 못했거나 깨진 경우 : 다시 달라고 요청
    • ex2) 쪼개져 보내진 파일의 순서가 바뀌는 것을 막기 위해 sequence number을 붙임

함수 정리

  • rdt_send() : App이 하위 rdt(TCP)에 data를 전달할 때 호출
  • udt_send() : rdt가 하위 udt(비신뢰적인 하위 채널)에 data를 전달할 때 호출
  • rdt_rcv() : 상위 rdt에 data를 전달할 때 호출
  • deliver_data() : rdt가 상위 layer에 data를 전달할 때 호출


FSM

  • 상태(state)를 기반으로 동작을 제어하는 방식을 구현하기 위한 디자인 패턴
  • 모든 일은 state, event, action으로 구분.
    • state : 나의 현재 상태
    • event : 외부에서 나에게 영향을 주는 것
    • action : event 발생 시 내가 취하는 행동

# rdt의 과정을 송신자 측면과 수신자 측면으로 나누어 표현할 수 있는데, 이 때 FSM으로 표현한다.

0개의 댓글

관련 채용 정보