Notice
Recent Posts
Recent Comments
관리 메뉴

Creative Thinking Warehouse To be Rich

흐름제어(Flow Control) 본문

정보통신 엔지니어링/[1] 정보통신

흐름제어(Flow Control)

LASER - 기술통역가 2026. 2. 1. 23:01

**흐름제어(Flow Control)**의 이해는 단순히 알고리즘을 외우는 것이 아니라, **'송신자와 수신자의 속도 차이로 발생하는 병목 현상을 어떻게 지능적으로 조절할 것인가'**라는 아주 단순한 물리적 제약에서 출발해야 합니다.

 

1. 흐름제어의 최상위 원리: "수신자의 그릇을 넘치지 않게 하기"

이 토픽의 출발점은 **"보내는 놈은 빠른데, 받는 놈이 느리면 어떻게 될까?"**라는 질문입니다.

  • 기초 상황: 송신자는 100Mbps로 데이터를 쏘는데, 수신자는 10Mbps만 처리할 수 있습니다. 나머지 90Mbps의 데이터는 수신자의 버퍼(대기실)를 가득 채우다 결국 바닥에 버려집니다.
  • 본질: 수신자가 송신자에게 "잠깐만! 나 지금 꽉 찼어" 혹은 **"이제 3개 정도는 더 받을 수 있어"**라고 자기 상태를 피드백하여 데이터 유실을 막는 '속도 조절' 기술입니다.

2. 어디서부터 이해를 시작해야 할까? (3단계 기초)

① Stop-and-Wait: "하나씩 확실하게"

  • 기본: 하나 보내고, 잘 받았다는 응답(ACK)이 올 때까지 다음 걸 안 보내고 기다리는 방식입니다.
  • 이해: 가장 확실하지만, 응답을 기다리는 동안 선로가 노는 시간이 너무 많습니다.  **'자원 활용의 비효율'**이 극에 달한 상태입니다.

② Sliding Window: "창문의 크기만큼은 연속 전송"

  • 기본: 수신자가 한 번에 받아낼 수 있는 양(Window Size)을 송신자에게 미리 알려줍니다.
  • 이해: 송신자는 응답이 안 왔어도 그 '창문 크기'만큼은 쉼 없이 데이터를 쏟아붓습니다. 응답을 받으면 창문을 옆으로 밀어(Sliding) 다음 데이터를 준비합니다. **'신뢰성과 효율성'**을 동시에 잡는 레버리지 기술입니다.

③ 피드백 루프: "수신자 주도의 제어"

  • 기본: 흐름제어의 주도권은 **'수신자'**에게 있습니다.
  • 이해: 수신자는 자신의 버퍼 상황에 따라 창문 크기를 줄였다 늘렸다 하며 송신자의 속도를 원격 제어합니다.

3. 사고(What, Why, How, So what) 기반 답안 매칭

질문 답안 목차 핵심 서술 내용 
Why 1. 개요 송신자와 수신자의 처리 능력 차이로 인한 버퍼 오버플로우와 데이터 폐기를 방지하기 위함
What 2. 기술 개념 송신자가 수신자의 데이터 처리 속도를 초과하지 않도록 전송량을 조절하는 매커니즘
How 3. 구성도 수신자가 Window Size를 통보하고 송신자가 그 범위 내에서 전송하는 시퀀스 시각화
Attributes 4. 특징 및 비교 Stop-and-Wait(단순/저효율) vs Sliding Window(복잡/고효율)
So what 5. 활용 및 동향 TCP의 핵심 기능이며, 현대의 고속 네트워크에서는 지연시간(RTT)을 고려한 동적 윈도우 제어로 진화함

💡 구글 시트 정리를 위한 한 줄 정리

  • A열(토픽): 흐름제어 (Flow Control)
  • B열(개요): 수신자의 처리 능력에 맞춰 송신자의 데이터 전송량을 조절하여 버퍼 오버플로우를 방지하는 기술
  • L열(키워드): 수.신.버.퍼.슬 (수신자 주도, 버퍼 관리, 슬라이딩 윈도우)

1. 개요

  • 송신측의 전송 속도가 수신측의 처리 속도보다 빠를 때 발생하는 수신 버퍼 오버플로우와 데이터 손실을 방지하기 위한 속도 조절 메커니즘임.
  • 송수신 양단 간의 데이터 처리 능력 차이를 동기화하여 전송 효율과 신뢰성을 보장하는 기술임.

2. 기술 개념

  • 핵심 원리: 수신측이 자신의 가용 버퍼 상태(Window Size 등)를 송신측에 피드백하여 송신 데이터의 양을 능동적으로 제어함.
  • 주요 방식:
    • 정지-대기(Stop-and-Wait): 한 번에 하나의 프레임을 전송하고 ACK 수신 후 다음 프레임을 전송하는 방식.
    • 슬라이딩 윈도우(Sliding Window): 수신측이 허용한 윈도우 크기 내에서 ACK 없이 연속적으로 데이터를 전송하는 방식.

3. 구성도 및 메커니즘

가. 구성도 설명

  1. 송신측 윈도우: ACK를 받지 않고도 전송할 수 있는 데이터의 범위(범퍼 역할).
  2. 수신측 윈도우: 수신 가능한 버퍼 공간의 크기.
  3. 절차: * 수신측이 응답(ACK)과 함께 현재 수신 가능한 윈도우 크기(RWND)를 통보.
    • 송신측은 통보받은 범위 내에서 데이터 전송 후, ACK가 오면 윈도우를 우측으로 이동(Sliding).

나. 주요 동작 메커니즘

  • RWND (Receiver Window): 수신측 버퍼의 여유 공간에 따라 크기가 가변적으로 조정됨.
  • 피기배킹(Piggybacking): 데이터 전송 시 응답(ACK) 정보를 프레임 내에 실어서 보내 전송 효율 향상.

4. 방식별 특징 및 장단점 비교

구분 정지-대기 (Stop-and-Wait) 슬라이딩 윈도우 (Sliding Window)
제어 단위 프레임 1개 단위 윈도우 크기(다수 프레임) 단위
장점 구조가 단순하고 구현이 쉬움 전송 대역폭 효율 극대화, 고속화 가능
단점 응답 대기 시간으로 전송 효율 저하 구현이 복잡하고 버퍼 관리가 필요함
적용 초기 프로토콜, 저속 통신망 TCP, 현대의 고속 데이터 네트워크

5. 활용 및 기술동향

가. 계층별 흐름제어 활용

  • L2 (Data Link): 인접 노드 간 흐름 제어 (IEEE 802.3x Flow Control, Pause Frame).
  • L4 (Transport): 종단 간(End-to-End) 신뢰성 보장을 위한 TCP Window Management.

나. 기술 진화 및 최신 동향

  • 적응형 윈도우 제어: 네트워크 지연시간(RTT)과 대역폭을 실시간 측정하여 최적의 윈도우 크기를 동적으로 결정.
  • BDP (Bandwidth-Delay Product) 고려: 고성능 장거리망(LFN)에서 전송 효율을 높이기 위해 Window Scaling 옵션을 통한 대용량 윈도우 지원.
  • QUIC 적용: 기존 TCP의 선두 차단(HoL Blocking) 문제를 해결하기 위해 UDP 기반의 QUIC 프로토콜에서 스트림별 독립적 흐름제어 수행.

'정보통신 엔지니어링 > [1] 정보통신' 카테고리의 다른 글

Wireless TCP  (0) 2026.02.02
혼잡제어(Congestion Control)  (1) 2026.02.01
전송제어(Transmission Control) 기술  (1) 2026.01.31
Carrier Ethernet(PTN)  (0) 2026.01.31
MSPP(Multi-service Provisioning Platform)  (0) 2026.01.31