전송후 대기 프로토콜은 "Stop-and-Wait Protocol"
이라고 합니다. 이는 가장 간단한 형태의 오류 제어 프로토콜 중 하나로, 데이터를 전송한 후 수신자로부터 확인(ACK)을 받을 때까지 대기하는 방식입니다.
Stop-and-Wait 프로토콜은 신뢰성 있는 데이터 전송을 보장합니다. 송신자가 데이터 프레임을 전송한 후 ACK를 받을 때까지 기다리기 때문에, 데이터 프레임이 손실되거나 오류가 발생하는 경우 재전송을 통해 문제를 해결할 수 있습니다. 하지만 이러한 방식은 효율적이지 않을 수 있으며, 대기 시간이 비효율적으로 사용되는 단점이 있습니다.
따라서, 더 복잡한 오류 제어 프로토콜인 Go-Back-N과 Selective Repeat와 같은 프로토콜들이 더 널리 사용되며, 높은 효율성과 신뢰성을 제공합니다. 그러나 Stop-and-Wait 프로토콜은 이해하기 쉽고, 간단한 네트워크 환경에서 사용할 수 있으며, 기초적인 이해를 위해 학습하는 데 유용합니다.
파이프라인 프로토콜은 데이터 처리와 전송을 효율적으로 수행하기 위한 기술적인 개념으로 사용됩니다.
파이프라인은 일련의 작업이 연속적으로 실행되는 것을 의미하며, 각 작업은 다음 작업으로의 입력이 되어 연결되어 있습니다. 네트워크나 데이터 처리에서 파이프라인은 데이터를 여러 단계로 나누어 처리하고, 각 단계에서 병렬적으로 처리하여 효율성을 극대화하는 방식을 말합니다.
Go-Back-N은 신뢰성 있는 데이터 전송을 위해 사용되는 오류 제어 프로토콜 중 하나로, 전송자(송신자)와 수신자 간의 데이터 흐름을 관리하여 데이터의 손실이나 손상을 감지하고 복구하는 기술입니다. Go-Back-N은 파이프라인 프로토콜의 한 형태로 볼 수 있으며, 데이터를 연속적으로 전송하는 방식으로 동작합니다.
윈도우 기반 파이프라인
:
전송자는 일정한 크기의 윈도우(window)를 유지합니다. 이 윈도우 크기에 따라 여러 개의 데이터 프레임을 연속적으로 전송합니다. 수신자는 윈도우의 크기에 맞춰 데이터를 수신하고 확인(ACK)을 보내게 됩니다.
복수 프레임 전송
:
Go-Back-N은 하나의 확인 응답(Acknowledgement)으로 여러 개의 프레임을 확인할 수 있습니다. 이렇게 여러 프레임을 한 번에 확인하는 것을 "누적 확인(Accumulative Acknowledgement)"라고 합니다.
슬라이딩 윈도우
:
윈도우가 슬라이딩하여 전송자와 수신자 간의 데이터 흐름을 관리합니다. 수신자는 윈도우 내의 데이터만을 확인하며, 데이터의 손실이나 손상이 감지되면 해당 프레임부터 다시 수신합니다.
타임아웃 및 재전송
:
전송자는 일정 시간 동안 수신자로부터 확인을 받지 못하면, 해당 윈도우의 프레임들을 재전송합니다. 이를 통해 데이터의 신뢰성을 보장하며, 수신자는 중복된 프레임을 자동으로 제거합니다.
Go-Back-N은 신뢰성 있는 데이터 전송을 보장하기 위해 오류 복구 기능을 제공합니다. 하지만 한 번에 하나의 윈도우만을 처리하는 방식으로 인해 네트워크 효율성이 떨어질 수 있습니다. 따라서 높은 오류율을 가진 불안정한 네트워크 환경에서 사용하는 것이 적절하며, 비교적 안정적인 환경에서는 Selective Repeat
와 같은 다른 오류 제어 프로토콜을 고려하는 것이 좋습니다.
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보다 구현이 어려울 수 있습니다. 따라서 네트워크의 환경과 조건에 따라 적절한 오류 제어 프로토콜을 선택하는 것이 중요합니다.