네트워크 | 슬라이딩 윈도우

Faithful Dev·2025년 1월 29일

컴퓨터 공학

목록 보기
68/81

TCP는 신뢰성 있는 데이터 전송을 보장하기 위해 다양한 제어 메커니즘을 사용한다.
이 중 중요한 요소로 흐름 제어(Flow Control)혼잡 제어(Congestion Control)가 있으며,
흐름 제어의 핵심 기술 중 하나가 슬라이딩 윈도우(Sliding Window) 기법이다.


TCP의 주요 제어 메커니즘

흐름 제어 (Flow Control)

  • 수신 측의 처리 속도에 맞춰 송신 측이 데이터를 조절하는 기능
  • 윈도우 크기(Window Size)를 이용해 송신량을 조절
  • 슬라이딩 윈도우(Sliding Window) 기법이 핵심적으로 사용됨.

만약 송신 속도가 너무 빠르면, 수신 버터가 가득 차서 데이터 손실이 발생할 수 있음. 이를 방지하기 위해 수신자는 윈도우 크기 값을 조정하여 송신자의 전송량을 제한함.


혼잡 제어 (Congestion Control)

  • 네트워크 내 패킷 과부하를 방지하기 위한 기능
  • 송신 속도를 동적으로 조절하여 네트워크가 혼잡해지는 것을 방지
  • 대표적인 알고리즘:
    • Slow Start (초기 속도 제한)
    • Congestion Avoidance (혼잡 회피)
    • Fast Retransmit & Fast Recovery (빠른 재전송 및 복구)

슬라이딩 윈도우 (Sliding Window)

기본 개념

TCP에서 데이터를 전송할 때, 송신자가 한 번에 보낼 수 있는 데이터 크기를 조절하는 기법이다.
이 윈도우는 수신자가 수용할 수 있는 크기(Window Size)에 따라 동적으로 변경됨.

동작 방식

  • 송신자는 한 번에 여러 개의 패킷을 전송할 수 있음 (윈도우 크기만큼)
  • 수신자는 받은 패킷을 확인(ACK)하면 윈도우가 이동(sliding)
  • 송신자는 확인되지 않은 데이터까지만 유지하면서 새 패킷을 보냄

즉, 한 번에 여러 패킷을 보내고, ACK를 받으면 새로운 데이터를 추가로 전송하는 방식이다.


슬라이딩 윈도우의 동작 과정

송신 윈도우 구조

슬라이딩 윈도우는 다음과 같은 3가지 영역으로 구성된다.

상태설명
전송 완료 (ACK 수신됨)이미 송신하여 수신자의 ACK를 받은 데이터
전송됨 (ACK 대기 중)전송은 했지만 아직 수신자의 확인 응답(ACK)을 받지 못한 데이터
미전송 (전송 대기 중)아직 전송하지 않은 데이터 (윈도우 크기 내에서 전송 가능)

TCP 윈도우 크기 조절

TCP에서는 윈도우 크기를 동적으로 조절하여 최적의 성능을 유지한다.
윈도우 크기는 수신자가 설정하며, 수신 버퍼가 가득 차면 줄어들고 여유가 생기면 커진다.

윈도우 크기 감소 예시

  • 수신 버퍼가 가득 차면, 수신자는 윈도우 크기=0을 설정하여 송신자가 더 이상 데이터를 보내지 않도록 함.
  • 송신자는 주기적으로 "윈도우 크기가 늘어났는지" 확인한 후 다시 데이터를 전송함.

흐름 제어 vs. 혼잡 제어 vs. 오류 제어 비교

제어 기법목적핵심 개념
흐름 제어 (Flow Control)수신자의 처리 속도에 맞춰 송신 속도를 조절윈도우 크기(Window Size)
혼잡 제어 (Congestion Control)네트워크 과부하를 방지Slow Start, Congestion Avoidance
오류 제어 (Error Control)패킷 손실 시 재전송ACK, 재전송(Retransmission)

정리

  • 슬라이딩 윈도우는 송·수신자 간의 데이터 흐름을 조절하는 핵심 기법
  • 윈도우 크기(Window Size)를 조절하여 수신자가 처리 가능한 만큼만 데이터 전송
  • ACK를 받으면 윈도우가 이동(sliding)하여 새로운 데이터 전송 가능
  • TCP는 흐름 제어, 혼잡 제어, 오류 제어를 통해 안정적인 데이터 전송을 보장함.

이처럼 슬라이딩 윈도우는 TCP의 핵심적인 흐름 제어 기술로, 효율적이고 신뢰성 있는 데이터 전송을 가능하게 한다.

profile
Turning Vision into Reality.

0개의 댓글