상세 컨텐츠

본문 제목

파이프라인 프로토콜, GBN, Selective Repeat

네트워크/개념 정리

by 나야홍박사 2026. 5. 11. 16:34

본문

1. 파이프라인 프로토콜 (Pipelined Protocol)

기존의 Stop-and-Wait 방식은 한 번에 하나의 패킷만 전송하고 확인응답(ACK)을 기다려야 하므로, 물리적인 링크의 대역폭이 넓더라도 이를 충분히 활용하지 못하는 치명적인 단점이 있습니다. 이를 해결하고 네트워크 링크의 효율을 극대화하기 위해 도입된 개념이 파이프라인 프로토콜입니다.

  • 핵심 개념: 확인응답(ACK)을 기다리지 않고 여러 개의 패킷을 연속적으로 전송하는 기법입니다.
  • 주요 요구사항:
    • 순서 번호(Sequence Number) 확장: 여러 패킷이 동시에 전송되므로 각 패킷을 식별하기 위해 순서 번호의 범위가 커져야 합니다.
    • 버퍼링(Buffering): 재전송이나 순서 재조합을 위해 송신자와 수신자 양측에 패킷을 임시로 저장할 버퍼가 필요합니다.
  • 기대 효과: 링크 활용도(Utilization)와 전체 시스템의 처리량(Throughput)이 비약적으로 상승합니다.


2. Go-Back-N (GBN)

GBN은 파이프라인을 구현하는 대표적인 슬라이딩 윈도우(Sliding Window) 기반 프로토콜입니다. 송신자는 윈도우 크기(N) 내에서 자유롭게 패킷을 전송하지만, 수신자는 오직 '순서대로' 도착한 패킷만 정상적으로 처리합니다.

  • 송신자 동작 및 윈도우 크기:
    • 송신자는 ACK를 받지 않은 상태라도 최대 N개의 패킷을 파이프라인에 유지하며 전송할 수 있습니다.
  • 누적 확인응답 (Cumulative ACK):
    • 수신자는 ACK n을 전송하여 "n번 패킷까지 모두 정상적으로 수신했다"는 것을 알립니다.
  • 오류 복구 (타이머 운영):
    • 송신자는 전송 중인 가장 오래된 패킷을 기준으로 단 하나의 타이머(Single Timer)만 운영합니다.
    • 타임아웃이 발생하면, 손실된 패킷부터 시작하여 윈도우 내의 미확인 패킷을 모두 일괄 재전송합니다.
  • 수신자 동작 (No Buffering):
    • 수신자는 순서가 어긋난(Out-of-order) 패킷이 도착하면 버퍼링하지 않고 즉시 폐기(Discard)합니다.


3. Selective Repeat (SR)

GBN은 구현이 비교적 단순하지만 오류 발생 시 성공적으로 전송된 패킷까지 불필요하게 재전송해야 하므로 대역폭이 낭비되는 한계가 있습니다. Selective Repeat(선택적 재전송)은 이름 그대로 수신 실패가 의심되는 특정 패킷만 선별하여 재전송함으로써 이 문제를 해결합니다.

  • 개별 확인응답 (Individual ACK):
    • 누적 방식이 아닌, 수신된 각각의 패킷에 대해 개별적으로 ACK를 전송합니다.
  • 수신자 버퍼링 (Buffering):
    • 순서가 어긋나게 도착한 패킷이더라도 정상 패킷이라면 수신자 버퍼에 보관합니다.
    • 이후 누락되었던 패킷이 재전송되어 도착하면, 버퍼에 있던 패킷들과 순서를 맞춰 상위 계층으로 전달합니다.
  • 오류 복구 (개별 타이머 운영):
    • 송신자는 전송된 각각의 패킷마다 개별적인 논리 타이머를 운영합니다.
    • 타임아웃 발생 시, 해당 타이머가 만료된 특정 패킷만 단독으로 재전송합니다.
  • 설계 시 주의점 (윈도우 크기 제약):
    • SR 프로토콜이 정상적으로 동작하려면 윈도우 크기(N)는 반드시 순서 번호 공간(Sequence Number Space) 크기의 절반 이하로 설정되어야 합니다. 그렇지 않으면 이전 윈도우의 재전송 패킷과 새로운 패킷을 수신자가 구분하지 못하는 오류가 발생할 수 있습니다.

'네트워크 > 개념 정리' 카테고리의 다른 글

ACCESS LIST  (0) 2026.05.11
RDT(Realiable Data Transfer)_20260211  (0) 2026.02.11
TCP/UDP(Transport Layer)_20260209  (0) 2026.02.10
Router-OSPF_20260114  (0) 2026.02.02
네트워크 part 1(TCP/IP 설정 파일)_20260109  (0) 2026.01.27

관련글 더보기