Computer Science/네트워크

[네트워크] Pipelined Reliable Data Transfer Protocols

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

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

 

2023.04.17 - [Computer Science/네트워크] - [네트워크] Principles of Reliable Data Transfer

 

[네트워크] Principles of Reliable Data Transfer

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

hi-guten-tag.tistory.com


1. rdt 3.0 Utilization

 

 

  • rdt 3.0의 유일한 단점은 바로 stop-and-wait 방식이라는 점입니다.
  • 아무리 고속으로 전송한다 해도, 송신자나 수신자는 전송/기다림을 반복해야 합니다.
  • 기다리는 이 시간이 너무 아깝지 않나요?
  • 1 Gbps link, 15 ms propagation, 8000 bit packet이 있다고 가정해 봅시다.
  • 송신자의 Utilization의 정의는 Tx / (RTT + Tx)입니다.
  • Tx = L/R = 8000/ 10^9 이므로 약 8 microsecond가 됩니다.
  • RTT는 2 * propagation이므로 30ms입니다.
  • 따라서 0.008 / 30.008 = 0.00027 이므로, 송신자가 비트를 링크로 넣어서 바쁜 시간의 비율인 Utilization은 0.00027입니다.

2. Pipelining

 

 

  • 만약 거리가 엄청 멀다면 어떻게 될까요? Utilization은 더 낮아지겠죠? Propagation 시간은 점점 늘어나는데, Tx는 똑같으니까요.
  • 아무래도 기다리는 시간을 더 줄여야 할 것 같습니다.

출처  : Computer Networking 3장. Figure 3.18

  • 이렇게 3개의 패킷을 Pipeline으로 전송한다면, 송신자의 Utilization은 3 * Tx / (RTT + Tx)가 되므로 0.00081이 됩니다.
  • 확실히 파이프라인 버전으로 하는 게 도움이 되는 것 같습니다. 그러나 Reliable 한 파이프라인 버전을 하기 위해선 3가지 조건이 더 필요합니다.
    • Sequence Number는 증가해야 합니다. rdt 3.0처럼 0과 1로 반복된다면 이는 반드시 어떠한 오류가 발생합니다. 따라서 각 패킷에 대해서는 고유한 번호가 입력되어야 합니다.
    • 송신자와 수신자는 반드시 하나 이상의 패킷을 위한 Buffer가 필요합니다. 최소한 송신자는 전송되었지만, 아직 ACK를 받지 못한 패킷에 대한 버퍼를 가지고 있어야 합니다. 정상적으로 받은 패킷에 대한 버퍼 또한 수신자에서도 필요할 수도 있습니다.
    • sequence number와 buffer는 왜 필요할까요? 이는 패킷의 손실, 손상, 그리고 과도하게 늦게 오는 패킷에 대해 처리하는 프로토콜을 만들기 위해서입니다.

 

  • 파이프라인 버전에서 발생하는 에러를 복구하기 위해 사용되는 두 가지 접근법이 있는데, Go-Back-NSelective Repeat이 있습니다.

참고

 

 

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

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

Chat GPT, Bing AI


다음 글에서는 Go-Back-N에 대해 알아보겠습니다.

 

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

감사합니다.

지적 환영합니다.