Computer Science/네트워크

[네트워크] Principle of RDT - rdt 3.0

바보1 2023. 4. 17. 14:34

앞의 글을 읽으시면 이해에 도움이 됩니다.

 

2023.04.17 - [Computer Science/네트워크] - [네트워크] Principle of RDT - rdt 2.2

 

[네트워크] Principle of RDT - rdt 2.2

앞의 글을 읽으시면 이해에 도움이 됩니다. 2023.04.17 - [Computer Science/네트워크] - [네트워크] Principle of RDT - rdt 2.1 [네트워크] Principle of RDT - rdt 2.1 앞의 글을 읽으시면 이해에 도움이 됩니다. 2023.04.1

hi-guten-tag.tistory.com


1. rdt 3.0

 

 

  • 이제 패킷이 없어지는 경우를 생각해 봅시다.
  • 그러면 이제 추가적인 두 가지 상황을 고려해야 합니다. 과연 어떻게 패킷 손실을 감지할 것이고, 패킷 손실이 발생했을 때 무엇을 해야하는가? 입니다.
  • sequence numberACK packetsretransmission은 이미 rdt 2.2에서 모두 사용했습니다.
  • 패킷 손실을 위해서는 다른 추가적인 기능이 필요한데, 이때 필요한 것은 바로 time입니다.
  • 따라서 패킷 손실이 일어났다고 예측되는 시간을 신중히 골라야 합니다.
  • 정한 시간을 지나도 ACK가 도착하지 않는다면, 송신자는 다시 패킷을 보냅니다. 따라서 수신자는 중복된 패킷인 Duplicate Data Packet을 받게 됩니다.
  • 다행히도 rdt 2.2에서 이런 중복된 패킷은 모두 sequence number로 처리했습니다.
  • 패킷이 손실되거나 ACK가 손실되거나, 혹은 ACK가 단순히 느리게 오거나 송신자의 행동은 Retransmite로 동일합니다.
  • 결론적으로 송신자에게 필요한 것은 countdown timer가 필요하고, 송신자가 ACK를 기다리던 중에서도 모든 시간이 지나면 즉시 패킷을 재전송해야 합니다.
  • 순서대로 설명하자면 송신자가 패킷을 전송할 때, 타이머를 시작하고, 타임의 interrupt에 해당하는 적절한 행동을 취한 후 타이머를 중지합니다.

2. FSM

 

 

출처 : Computer Networking 3장. Figure 3.15
출처 : Computer Networking 3장. Figure 3.14

  • 수신자는 rdt 2.2의 수신자와 동일하다고 가정합니다.
  • rdt 2.2와 달라진 점은 timeout이 추가되었다는 것입니다.
  • 어떠한 경우라도 정해진 시간을 넘기면 즉시 패킷을 재전송합니다.
  • 만약 오류가 없고, 내가 대기하고 있는 숫자에 해당하는 ACK를 전송하면 타이머를 종료하고, 다음 숫자를 포함한 패킷을 전송합니다.

3. rdt 3.0 in action

 

 

출처 : Computer Networking 3장. Figure 3.16

  • a, b, c, d는 rdt 3.0에 있어서 각 상황에 따른 행동입니다.
  • d의 경우에는 타이머가 너무 짧기 때문에, 정상적으로 ACK가 수신되는 와중에 timeout으로 인해 재전송하는 모습을 보입니다.

 

  • 그러나 완벽해 보이는 이 rdt 3.0 또한 업그레이드 될 수 있습니다.

참고

 

 

경북대학교 컴퓨터학부 COMP0414-001 컴퓨터 망 수업

Computer Networking: A Top Down Approach / James F. Kurose, Keith W. Ross 저 / PEARSON / 2021년

Chat GPT, Bing AI


다음 글에서는 Pipeline Reliable Data Transfer Protocols에 대해 알아보겠습니다.

 

2023.04.17 - [Computer Science/네트워크] - [네트워크] Pipelined Reliable Data Transfer Protocols

 

[네트워크] Pipelined Reliable Data Transfer Protocols

앞의 글을 읽으시면 이해에 도움이 됩니다. 2023.04.17 - [Computer Science/네트워크] - [네트워크] Principles of Reliable Data Transfer [네트워크] Principles of Reliable Data Transfer 앞의 글을 읽으시면 이해에 도움이

hi-guten-tag.tistory.com

감사합니다.

지적 환영합니다.