앞의 글을 읽으시면 이해에 도움이 됩니다.
2023.04.17 - [Computer Science/네트워크] - [네트워크] Principle of RDT - rdt 2.1
1. rdt 2.2
- 앞선 글에서 말했듯이 굳이 NAK이라는게 필요할까요?
- 만약 오류가 난다면 어떻게 될까요? 수신자가 0을 받았는데, 오류가 발생해서 NAK을 보내야 합니다.
- 수신자가 0을 기다린다는 뜻은 이미 1은 정상적으로 수신되었다는 의미입니다. 그러면 수신자는 그냥 NAK 대신에 내가 가장 최근에 받은 정상적인 번호와 ACK을 보냅니다.
- 따라서 NAK이 아니라 ACK(1)을 전송합니다.
- 어떠한 오류가 발생해서 동일한 패킷에 해당하는 두 개의 ACK를 Duplicate ACK라고 합니다.
2. FSM
- 다시 보면, 송신자가 0을 보냈습니다. 그리고 수신자로부터 정상적으로 받았다는 ACK(0)이 왔습니다.
- 이제 송신자는 1을 보냅니다. 그런데 송신자는 수신자로부터 ACK(0)을 받았습니다.
- 송신자는 ACK(1)을 기다리고 있는데, ACK(0)을 받았다는 것은 어떤 오류가 발생했다는 의미입니다.
- 따라서 송신자는 1을 다시 보냅니다.
- 그러면 이제 오류가 아닌, 손실이 일어나는 경우도 생각해봅시다.
참고
경북대학교 컴퓨터학부 COMP0414-001 컴퓨터 망 수업
Computer Networking: A Top Down Approach / James F. Kurose, Keith W. Ross 저 / PEARSON / 2021년
Chat GPT, Bing AI
다음 글에서는 rdt 3.0에 대해 알아보겠습니다.
2023.04.17 - [Computer Science/네트워크] - [네트워크] Principle of RDT - rdt 3.0
감사합니다.
지적 환영합니다.
'Computer Science > 네트워크' 카테고리의 다른 글
[네트워크] Pipelined Reliable Data Transfer Protocols (0) | 2023.04.17 |
---|---|
[네트워크] Principle of RDT - rdt 3.0 (0) | 2023.04.17 |
[네트워크] Principle of RDT - rdt 2.1 (0) | 2023.04.17 |
[네트워크] Principle of RDT - rdt 2.0 (0) | 2023.04.17 |
[네트워크] Principle of RDT - rdt 1.0 (0) | 2023.04.17 |