네트워크에서는 데이터 손실이나 지연을 방지하기 위해 흐름 제어 (Flow Control)가 중요한 역할을 합니다. OSI 7계층 중 2계층(데이터 링크 계층)과 4계층(전송 계층)에서만 흐름 제어가 이루어지며, 각 계층마다 제어 방식에 차이가 있는데요, 흐름 제어의 개념과 계층별 차이를 정확히 이해하면 문제가 나왔을때 잘 작성하실 수 있을거라고 생각합니다.

 

 

흐름 제어 (Flow Control)

 

1. 정의

- 흐름 제어(Flow Control)는 송신 측과 수신 측의 데이터 처리 속도 차이로 인해 발생하는 데이터 손실을 방지하기 위한 제어 기법.

- OSI 7계층의 4계층 (전송 계층)뿐만 아니라, 2계층 (데이터 링크 계층)에서도 흐름 제어 기능이 수행.

 

2. 계층별 흐름 제어

(1) 4계층 (전송 계층) 흐름 제어

- 종단 간(end-to-end) 제어를 수행

- TCP 프로토콜을 통해 구현되며, 슬라이딩 윈도우 (Sliding Window) 기법이 핵심

- 네트워크 경로 전체의 데이터 흐름을 조절하여 대규모 트래픽 제어에 효과적

(2) 2계층 (데이터 링크 계층) 흐름 제어

- 인접한 노드 간(Point-to-Point) 제어를 수행

- 일반적으로 Stop-and-Wait 방식과 슬라이딩 윈도우 방식이 사용

- 4계층에 비해 단순한 구조로, 링크 단위의 데이터 흐름 제어에 집중

 

3. 슬라이딩 윈도우 (Sliding Window) 기법

(1) 개념

- 송신 측은 수신 측이 설정한 윈도우 크기만큼 데이터를 전송한 후, ACK (확인 응답)을 받아야 다음 데이터를 전송 가능

- 윈도우 크기는 네트워크 상태에 따라 동적으로 변경

- 윈도우는 전송이 완료된 데이터의 경계를 기준으로 Slide (이동) 하며 계속 확장되거나 축소

(2) 주요 특징

- 윈도우 크기 = min(수신 윈도우 크기, 혼잡 윈도우 크기)

- 윈도우 열림: 수신 측이 ACK를 보내면 윈도우의 경계가 오른쪽으로 이동하여 추가 데이터 전송 가능

- 윈도우 닫힘: 전송한 데이터가 확인될 경우, 해당 데이터는 더 이상 송신 측에서 관리하지 않아 윈도우가 닫힘

 

4. 흐름 제어 중 발생 가능한 문제

- Silly Window Syndrome: 수신 측이 작은 크기의 데이터를 자주 보내는 경우 비효율적인 데이터 전송 발생

해결 방안: 일정 크기 이상의 데이터가 쌓일 경우에만 ACK 전송

 

5. 슬라이딩 윈도우 활용 방안

- 윈도우 크기 최적화: 트래픽 상태를 실시간으로 감지해 윈도우 크기를 조절함으로써 최적의 데이터 흐름 유지

- Silly Window Syndrome 방지: ACK 전송 간격을 조정하여 작은 패킷의 과도한 전송 방지

- QoS 연동: 중요 데이터의 우선 전송을 통해 대역폭을 효율적으로 사용

 

6. 계층별 흐름제어 비교

구분
4계층 (전송 계층)
2계층 (데이터 링크 계층)
제어 범위
종단 간 (End-to-End)
인접한 노드 간 (Point-to-Point)
주요 기법
슬라이딩 윈도우 (Sliding Window)
Stop-and-Wait, 슬라이딩 윈도우 (단순 버전)
프로토콜
TCP, UDP
HDLC, PPP 등
흐름 제어 초점
전체 네트워크 경로 상의 데이터 흐름 제어
두 노드 간의 링크 흐름 제어
속도 조절 능력
혼잡 제어와 연계되어 동적 조절 기능이 강력
단순히 ACK 기반의 제한적인 흐름 제어

 

7. 흐름제어 요약

구분
설명
정의
송신 측과 수신 측의 데이터 처리 속도 차이를 조절하는 기술
핵심 기법
슬라이딩 윈도우 (Sliding Window)
윈도우 크기
min(수신 윈도우 크기, 혼잡 윈도우 크기)
윈도우 열림
ACK 수신 시 윈도우의 오른쪽 경계 이동
윈도우 닫힘
데이터 전송 완료 후 더 이상 관리할 필요 없는 데이터 제외
계층별 특성
4계층: 종단 간 흐름 제어 / 2계층: 노드 간 흐름 제어
문제 상황
Silly Window Syndrome
해결 방안
일정 크기 이상의 데이터가 쌓일 경우에만 ACK 전송

 

'ITPE > NW' 카테고리의 다른 글

오픈랜(Open Radio Access Network, O-RAN)  (0) 2025.03.28
MQTT 프로토콜 참고  (0) 2018.03.02
NDN  (0) 2018.02.26

+ Recent posts