기출 sliding window

agnusdei·2024년 11월 24일
0

Network

목록 보기
34/419

질문

네트워크 전송에서 슬라이딩 윈도우(Sliding Window) 알고리즘에 대하여 설명하시오.


답변

1. 슬라이딩 윈도우(Sliding Window) 알고리즘 개념

슬라이딩 윈도우 알고리즘은 데이터 전송의 흐름 제어(Flow Control)와 오류 제어(Error Control)를 위해 사용되는 방식입니다. 송신 측과 수신 측 간의 데이터 흐름을 동적으로 조절하여, 효율적인 데이터 전송과 안정성을 보장합니다.

  • 윈도우(Window):
    송신 측에서 ACK(Acknowledgment)를 받기 전에도 송신 가능한 데이터 블록의 최대 크기를 의미.

    • 송신 윈도우(Send Window)
    • 수신 윈도우(Receive Window)
  • 데이터는 순차적으로 전송되며, 송신 측은 수신 측으로부터 ACK를 받아야 윈도우를 슬라이딩하며 다음 데이터를 전송할 수 있습니다.


2. 슬라이딩 윈도우의 주요 동작 원리

2.1. 윈도우 크기

윈도우 크기는 송신 측과 수신 측 간의 협상에 의해 결정되며, 네트워크 상태와 수신 측 버퍼 크기에 따라 변경됩니다.

  • 송신 가능 데이터 = min(CWND, RWND)

2.2. 주요 개념

  1. 송신 버퍼(Send Buffer)

    • 송신된 데이터 중 ACK를 받지 않은 데이터가 저장됨.
    • 송신 측은 ACK를 받으면 해당 데이터를 삭제하고, 새로운 데이터를 버퍼에 추가함.
  2. 수신 버퍼(Receive Buffer)

    • 수신된 데이터가 임시로 저장되는 공간.
    • 순서대로 정렬된 데이터만 애플리케이션 계층으로 전달됨.
  3. ACK 응답

    • 수신 측은 받은 데이터의 순서를 확인하고, 정상적으로 수신한 경우 ACK를 송신 측으로 보냄.
    • 중복 ACK가 발생하면 송신 측은 패킷 손실 가능성을 인지함.

2.3. 데이터 전송 절차

  1. 초기 상태:

    • 송신 측은 수신 측이 제시한 윈도우 크기만큼 데이터를 전송 가능.
  2. ACK 수신:

    • 수신 측이 ACK를 송신하면, 송신 윈도우는 ACK된 데이터 크기만큼 슬라이딩(이동).
    • 이후 새로운 데이터를 추가로 전송.
  3. 재전송:

    • 패킷 손실이 발생하면, 송신 측은 손실된 패킷을 재전송.
    • 일반적으로 타임아웃(Timer) 또는 중복 ACK를 통해 손실을 감지.

3. 슬라이딩 윈도우 종류

3.1. Stop-and-Wait

  • 가장 단순한 형태의 오류 제어 기법.
  • 특징:
    1. 한 번에 한 패킷씩 전송하고, ACK를 받을 때까지 대기.
    2. 단순하지만, 대역폭 활용률이 낮음.
  • 단점: 네트워크 지연이 긴 경우 전송 속도가 급격히 저하됨.

3.2. Go-Back-N

  • 송신 측은 N개의 패킷을 한 번에 전송 가능.
  • ACK를 받지 못한 패킷 이후의 모든 패킷을 재전송.
  • 특징:
    1. 순서 보장.
    2. 패킷 손실 시 재전송량 증가 가능.

3.3. Selective Repeat

  • Go-Back-N의 비효율성을 개선한 방식.
  • 손실된 패킷만 재전송.
  • 특징:
    1. 재전송량 감소.
    2. 구현 복잡도 증가.

4. 슬라이딩 윈도우의 장단점

4.1. 장점

  1. 대역폭 효율적 활용:
    송신 측이 ACK를 기다리지 않고 여러 패킷을 전송 가능.

  2. 데이터 전송 속도 향상:
    Stop-and-Wait 방식 대비 높은 처리량 제공.

  3. 유연성:
    네트워크 상태와 수신 측 버퍼 크기에 따라 윈도우 크기를 조정 가능.

4.2. 단점

  1. 복잡성 증가:
    Go-Back-N, Selective Repeat 구현이 비교적 복잡.

  2. 버퍼 관리 문제:
    수신 측과 송신 측에서의 버퍼 관리가 필요.

  3. 패킷 손실 시 성능 저하:
    패킷 손실이 빈번하면 재전송으로 인해 성능 저하 가능.


5. 슬라이딩 윈도우와 TCP에서의 활용

TCP(Transmission Control Protocol)는 슬라이딩 윈도우 알고리즘을 기반으로 작동합니다.

  1. 혼잡 제어:
    CWND(Congestion Window)와 함께 슬라이딩 윈도우를 사용하여 혼잡 상황을 제어.

  2. 흐름 제어:
    RWND(Receive Window)를 활용하여 수신 측의 처리 용량에 맞게 전송량을 제한.

  3. 데이터 신뢰성 보장:
    패킷 손실 시 재전송을 통해 데이터의 순서 보장.


6. 전망 및 개선 방향

  1. 고속 네트워크 지원:
    고속 네트워크 환경에서 슬라이딩 윈도우 크기를 동적으로 확장하는 연구 필요.

  2. 에너지 효율 개선:
    무선 네트워크에서 전송 효율을 높이고, 전력 소모를 줄이는 알고리즘 도입.

  3. 머신러닝 활용:
    네트워크 상태를 학습하여 최적의 윈도우 크기를 동적으로 조정.


결론
슬라이딩 윈도우 알고리즘은 데이터 전송의 효율성과 신뢰성을 보장하는 핵심 기법으로, TCP와 같은 주요 프로토콜에서 널리 사용됩니다. Go-Back-N, Selective Repeat 등 다양한 변형 방식으로 활용되며, 네트워크 기술 발전에 따라 지속적으로 개선되고 있습니다.

0개의 댓글