[네트워크] 신뢰적 데이터 전송의 원리

CJY·2023년 8월 4일
0

네트워크

목록 보기
6/11

전송후 대기 프로토콜

전송후 대기 프로토콜은 "Stop-and-Wait Protocol"이라고 합니다. 이는 가장 간단한 형태의 오류 제어 프로토콜 중 하나로, 데이터를 전송한 후 수신자로부터 확인(ACK)을 받을 때까지 대기하는 방식입니다.

동작 방식

  1. 송신자가 데이터 프레임을 수신자에게 전송합니다.
  2. 수신자는 데이터 프레임을 정상적으로 받으면 ACK(Positive Acknowledgement)를 송신자에게 보냅니다.
  3. 송신자는 ACK를 받을 때까지 기다립니다.
  4. 만약 송신자가 일정 시간 동안 ACK를 받지 못하면, 데이터 프레임을 재전송합니다.

특징

Stop-and-Wait 프로토콜은 신뢰성 있는 데이터 전송을 보장합니다. 송신자가 데이터 프레임을 전송한 후 ACK를 받을 때까지 기다리기 때문에, 데이터 프레임이 손실되거나 오류가 발생하는 경우 재전송을 통해 문제를 해결할 수 있습니다. 하지만 이러한 방식은 효율적이지 않을 수 있으며, 대기 시간이 비효율적으로 사용되는 단점이 있습니다.

따라서, 더 복잡한 오류 제어 프로토콜인 Go-Back-N과 Selective Repeat와 같은 프로토콜들이 더 널리 사용되며, 높은 효율성과 신뢰성을 제공합니다. 그러나 Stop-and-Wait 프로토콜은 이해하기 쉽고, 간단한 네트워크 환경에서 사용할 수 있으며, 기초적인 이해를 위해 학습하는 데 유용합니다.

파이프라인 프로토콜

파이프라인 프로토콜은 데이터 처리와 전송을 효율적으로 수행하기 위한 기술적인 개념으로 사용됩니다.

파이프라인은 일련의 작업이 연속적으로 실행되는 것을 의미하며, 각 작업은 다음 작업으로의 입력이 되어 연결되어 있습니다. 네트워크나 데이터 처리에서 파이프라인은 데이터를 여러 단계로 나누어 처리하고, 각 단계에서 병렬적으로 처리하여 효율성을 극대화하는 방식을 말합니다.

Go-Back-N

Go-Back-N은 신뢰성 있는 데이터 전송을 위해 사용되는 오류 제어 프로토콜 중 하나로, 전송자(송신자)와 수신자 간의 데이터 흐름을 관리하여 데이터의 손실이나 손상을 감지하고 복구하는 기술입니다. Go-Back-N은 파이프라인 프로토콜의 한 형태로 볼 수 있으며, 데이터를 연속적으로 전송하는 방식으로 동작합니다.

특징

  • 윈도우 기반 파이프라인:
    전송자는 일정한 크기의 윈도우(window)를 유지합니다. 이 윈도우 크기에 따라 여러 개의 데이터 프레임을 연속적으로 전송합니다. 수신자는 윈도우의 크기에 맞춰 데이터를 수신하고 확인(ACK)을 보내게 됩니다.

  • 복수 프레임 전송:
    Go-Back-N은 하나의 확인 응답(Acknowledgement)으로 여러 개의 프레임을 확인할 수 있습니다. 이렇게 여러 프레임을 한 번에 확인하는 것을 "누적 확인(Accumulative Acknowledgement)"라고 합니다.

  • 슬라이딩 윈도우:
    윈도우가 슬라이딩하여 전송자와 수신자 간의 데이터 흐름을 관리합니다. 수신자는 윈도우 내의 데이터만을 확인하며, 데이터의 손실이나 손상이 감지되면 해당 프레임부터 다시 수신합니다.

  • 타임아웃 및 재전송:
    전송자는 일정 시간 동안 수신자로부터 확인을 받지 못하면, 해당 윈도우의 프레임들을 재전송합니다. 이를 통해 데이터의 신뢰성을 보장하며, 수신자는 중복된 프레임을 자동으로 제거합니다.

Go-Back-N은 신뢰성 있는 데이터 전송을 보장하기 위해 오류 복구 기능을 제공합니다. 하지만 한 번에 하나의 윈도우만을 처리하는 방식으로 인해 네트워크 효율성이 떨어질 수 있습니다. 따라서 높은 오류율을 가진 불안정한 네트워크 환경에서 사용하는 것이 적절하며, 비교적 안정적인 환경에서는 Selective Repeat와 같은 다른 오류 제어 프로토콜을 고려하는 것이 좋습니다.

Selective Repeat ARQ

Selective Repeat ARQ(Selective Repeat Automatic Repeat Request)는 신뢰성 있는 데이터 전송을 위해 사용되는 오류 제어 프로토콜 중 하나입니다. Go-Back-N과 마찬가지로 파이프라인 프로토콜의 한 형태로 볼 수 있으며, 데이터의 손실이나 손상을 검출하고 복구하는 기술을 제공합니다.

특징

  • 복수 프레임 전송:
    Selective Repeat ARQ은 하나의 확인 응답(Acknowledgement)으로 하나 이상의 프레임을 확인할 수 있습니다. 이를 통해 Go-Back-N과 달리 오직 하나의 프레임만 재전송하는 것이 아니라, 손상이나 손실된 프레임만을 선택적으로 재전송합니다.

  • 별도의 수신 윈도우:
    Selective Repeat ARQ에서 수신자는 별도의 수신 윈도우를 유지합니다. 이 윈도우는 수신자가 받고자 하는 데이터 프레임들의 집합을 나타내며, 이 윈도우 크기에 따라 연속적으로 수신할 수 있는 데이터의 범위가 결정됩니다.

  • 별도의 버퍼:
    수신자는 수신 윈도우에 도달한 데이터를 별도의 버퍼에 저장합니다. 이 버퍼에 저장된 데이터는 손상이나 손실이 없는 것으로 간주되며, 상위 계층으로 전달됩니다.

  • 확인 응답과 윈도우 이동:
    수신자는 정상적으로 수신한 데이터 프레임에 대해 확인 응답(ACK)를 전송하고, 수신 윈도우를 이동시킵니다. 수신자의 윈도우 이동은 전송자가 다음에 전송할 수 있는 데이터 프레임을 결정하는 데 영향을 미칩니다.

  • 재전송 윈도우:
    전송자는 확인 응답을 받지 못한 프레임들을 재전송 윈도우에 유지합니다. 수신자가 해당 프레임을 재수신하면, 해당 프레임을 버퍼에 저장하고 ACK를 전송하게 됩니다.

Selective Repeat ARQ은 높은 신뢰성을 가지면서도 Go-Back-N보다 효율적인 오류 제어 프로토콜로 사용됩니다. 선택적으로 손상된 프레임만을 재전송하기 때문에 네트워크 효율성이 높아지며, 많은 양의 데이터 전송에 적합합니다. 그러나 복잡한 구조와 관리로 인해 Go-Back-N보다 구현이 어려울 수 있습니다. 따라서 네트워크의 환경과 조건에 따라 적절한 오류 제어 프로토콜을 선택하는 것이 중요합니다.

profile
열심히 성장 중인 백엔드

0개의 댓글