본문 바로가기
  • 컴공생의 공부 일기
  • 공부보단 일기에 가까운 것 같은
  • 블로그
📖 CS/정보통신공학

정보통신공학 Chap 7 : Data Link Control Protocols - 1. Flow Control

by 정람지 2025. 4. 15.

ℹ️ 자료 정리


ℹ️ 굣님 요약 정리

 

📡 Flow Control & Sliding Window 

 

 

✅ 1. Flow Control의 목적

 

수신 측 버퍼 오버플로우 방지

송신자가 수신자의 처리 속도 및 버퍼 용량을 고려해 전송 속도 제어.

 


 

✅ 2. 주요 시간 요소

요소 의미
Transmission Time (Ttrans) 프레임의 모든 비트를 링크로 전송하는 데 걸리는 시간 (L bits / R bps)
Propagation Time (Tprop) 1비트가 TX→RX로 이동하는 데 걸리는 시간 (d / V)

 


 

✅ 3. Stop-and-Wait Flow Control

특징 설명
전송 방식 프레임 1개 전송 → ACK 수신 대기 → 다음 전송
프레임 수 한 번에 1개만 전송 가능
효율성 전파 지연이 클수록 비효율적 (idle 시간 ↑)
Link Utilization U = T_trans / (T_trans + 2 × T_prop)
비유적 설명 하나 보내고 ACK 기다릴 동안 전송 중지 = 쉬는 시간 많음

 


 

✅ 4. Sliding Window Flow Control

 

W개의 프레임을 ACK 없이 연속 전송하여 idle 시간 없이 링크 활용

 

 

핵심 구조

 

  • W = 수신자 ACK 없이 송신 가능한 프레임 수
  • 프레임마다 고유 sequence number (k-bit) 필요 → 시퀀스 번호: 0 ~ 2ᵏ–1
  • 제약 조건:
    • W ≤ 2ᵏ – 1
    • 이유: 시퀀스 번호가 반복되므로 프레임 충돌 혼동 방지

 

 

예시

  • k = 3 → 가능한 시퀀스 번호: 0~7
  • → 최대 W = 7 (8은 불가)

 

✅ 5. Sliding Window + ACK 종류

ACK 종류 의미
RRk “k-1까지 잘 받았고, 이제 k번 기다림” (Receive Ready)
RNRk “k-1까지는 받았지만, k는 아직 못 받음” (Receive Not Ready) → flow control 목적

 


 

✅ 6. Piggybacking (Full Duplex일 때만)

 

데이터 프레임에 ACK 번호를 함께 실어서 전송

상황 전송 방식
(1) 데이터 + 새 ACK data seq = X, ack seq = Y
(2) 데이터 없이 ACK만 ack seq = Y (RR 프레임)
(3) 데이터 + 반복 ACK ack seq는 이전 값 그대로, data seq만 증가

 ACK 전용 프레임 수 감소 → 링크 효율성 증가

 


 

✅ 7. Sliding Window의 Utilization 계산

 

 

조건별 계산

 

● Case 1: 

(조건) W ≥ (Ttrans + 2 × Tprop) / Ttrans

→ Utilization = 100%

 

 

 

● Case 2: 

(조건) W < (Ttrans + 2 × Tprop) / Ttrans

U = (W * Ttrans) / (Ttrans + 2 × Tprop) * 100 (< 100%)

 

→ W가 부족하면 대기 발생

 낮은 효율

 


 

✅ 8. Sliding Window에서 새로 보낼 수 있는 프레임 수

 

현재 W값 – 아직 ACK을 받지 못한 프레임 수(unacked)

 남은 window 공간만큼 추가 전송 가능

 


 

✅ 9. 정리 비교

항목 Stop-and-Wai Sliding Window
전송 가능 프레임 수 1 W (≥ 1)
필요 조건 없음 시퀀스 번호 (k-bit), 버퍼 고려
링크 효율 낮음 높음 (특히 Tprop 큰 환경에서 유리)
구조 복잡성 낮음 높음 (윈도우 추적, 번호 순환 등 필요)