Computer Science/네트워크

[네트워크] Selective Repeat (SR)

바보1 2023. 4. 17. 17:25

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

 

2023.04.17 - [Computer Science/네트워크] - [네트워크] Go-Back-N (GBN)

 

[네트워크] Go-Back-N (GBN)

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

hi-guten-tag.tistory.com


1. Selective Repeat (SR)

 

 

  • GBN은 단점이 있는데, 만약 window size, bandwidth-delay가 매우 커서 많은 패킷이 파이프라인에 존재하는 경우에 single packet error는 불필요하게 GBN은 많은 양의 패킷을 재전송할 수 있습니다.
  • GBN은 채널의 에러율이 증가할수록, 파이프라인의 재전송으로 채워집니다.
  • 이러한 이유로 Selective Repeat (SR)에러가 발생한 패킷에 대해서만 재전송 함으로써 불필요한 재전송을 피할 수 있습니다.
  • 따라서 수신자는 수신되는 패킷에 각각 ACK를 응답해야 합니다.

출처 : Computer Networking 3장. Figure 3.23

  • GBN과 다르게 SR의 window에는 ACK가 된 패킷 또한 존재할 수 있습니다.
  • 수신자는 패킷의 도착 순서에 상관없이, 도착하는 패킷에 대해서 ACK를 응답합니다.
  • 순서가 바뀌거나 누락된 패킷이 있다면 수신될 때까지 버퍼링 하며, 모두 수신된 시점에 상위 계층으로 순서대로 전달할 수 있습니다.

2. 참조 그림

 

 

출처 : Computer Networking 3장. Figure 3.26

  • 그림처럼 2번 패킷이 손실되었지만, 나머지 3, 4, 5 패킷은 정상적으로 수신되고, ACK 또한 정상적으로 응답됩니다.
  • 2번 패킷의 재전송이 성공적으로 수신된 이후에 수신자의 window가 [6, 7, 8, 9]로 옮겨진 모습을 볼 수 있습니다.
  • 마찬가지로 2번 패킷의 ACK 신호와 나머지 3, 4, 5의 ACK 신호가 도착하면 송신자의 window 또한 [6, 7, 8, 9]로 옮겨집니다.

3. Dilemma

 

 

  • sequence number가 0, 1, 2, 3이고, window size가 3인 경우에는 어떻게 될까요?

출처 : Computer Networking 3장. Figure 3.27

  • a는 수신자가 응답하는 3개의 ACK가 모두 손실된 경우입니다.
    • 이 경우 수신자는 앞선 0, 1, 2의 패킷을 정상적으로 받았으므로, window를 [3, 0, 1]로 옮깁니다.
    • 다만 송신자는 ACK를 받지 못했고, 0번 패킷이 timeout이 되었으므로 재전송합니다.

 

  • b는 수신자가 정상적으로 응답했을 때입니다.
    • 이때 0, 1, 2에 해당하는 ACK를 모두 받았으므로 송신자의 window는 우측으로 옮겨집니다.
    • 송신자는 3번 패킷을 보내고, 이는 손실되었습니다.
    • 그리고 송신자는 0번 패킷을 보냈고, 이 패킷은 새로운 데이터에 해당합니다.

 

  • 수신자는 벽으로 가려진 건너편을 보지 못하므로, 이 패킷이 새로운 패킷인지 아니면 재전송되는 패킷인지 구분할 수 없습니다.
  • 따라서 너무 큰 N을 설정하는 것은 수신자로 하여금 딜레마에 빠지게 합니다.
  • 결론적으로 window size는 sequence number의 절반의 이하가 되어야 합니다.

참고

 

 

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

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

Chat GPT, Bing AI


지금까지 Reliable Data Transfer Protocol이 갖춰야 할 원리에 대해서 알아봤습니다.

이러한 원리가 우리의 모델의 아래에 깔려있다 생각하고 TCP를 알아봅시다.

다음 글에서는 TCP에 대해 알아보겠습니다.

 

2023.04.17 - [Computer Science/네트워크] - [네트워크] TCP - Connection-Oriented Transport

 

[네트워크] TCP - Connection-Oriented Transport

앞의 글을 읽으시면 이해에 도움이 됩니다. 2023.04.15 - [Computer Science/네트워크] - [네트워크] Transport-Layer Protocols [네트워크] Transport-Layer Protocols 앞의 글을 읽으시면 이해에 도움이 됩니다. 2023.04.07

hi-guten-tag.tistory.com

감사합니다.

지적 환영합니다.