ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 애플리케이션 계층2
    TodayILearned/네트워크 2021. 8. 16. 17:39

    Reliable 데이터 전송의 원리

    • 패킷 유실, 에러를 처리하여 reliable하게 만듦

    완벽한 reliable 채널을 이용했다고 친다면, sender가 보내는 패킷은 모두 receiver에게 도달하게 될 것임.

    그러나

    channel이 에러가 발생한다면

    1. 에러의 발생 유무를 확인한다.
    2. 피드백을 보낸다.
      1. ACKs(Acknowledgements)
      2. NACKs(Negative acknowledgements)
    3. 재전송
      1. NAK에 대한 패킷을 재전송한다.

    Feed back error

    만약 feedback 자체에 에러가 있는 경우, 위의 프로세스는 부적절하다.

    아래의 프로세스를 따르게된다.

    • Sender는 각각의 패킷에 sequence Number를 붙인다.
    • Sender는 에러가 발생한 ACK/NAK에 대해 재전송한다.
    • Receiver는 sequence Number를 확인해 중복된 패킷을 버린다.

    NAK가 없는 프로세스

    • 마지막에 받은 ACK Number를 확인해 에러 여부를 판단한다.

    메시지 유실

    • Sender는 Receiver로부터 아무 메세지도 받지 못하게 됨.
    • Timer 개념 도입, 패킷을 보내고 일정 시간 이후 응답을 받지 못하면 재전송함
    • 만약 패킷이 지연되었을 뿐이라면, sequence number를 확인해 핸들링한다.
Designed by Tistory.