
1. 흐름 제어(Flow Control)란
1.1 정의
흐름 제어 = 송신자가 수신자를 압도하지 않도록 데이터 전송 속도를 조절하는 메커니즘. 수신자의 버퍼 오버플로우 방지 및 데이터 손실 방지가 목적.
비유: 수도꼭지(송신자)에서 물(데이터)이 너무 빠르게 쏟아져 싱크대(수신자)가 넘치는 상황을 방지하는 것과 같아요. 수도꼭지의 물줄기를 조절해서 싱크대가 처리 가능한 속도에 맞춥니다.
1.2 흐름 제어의 핵심 메커니즘
| 메커니즘 | 설명 |
| 피드백 기반 | 수신자가 ACK로 "잘 받았어"를 송신자에게 알림 |
| 윈도우 기반 | 송신자가 ACK 없이 보낼 수 있는 양 제한 |
| 수신자 버퍼 보호 | 수신 가능 능력에 맞게 속도 조절 |
1.3 두 가지 핵심 프로토콜
| 프로토콜 | 핵심 |
| 정지-대기 (Stop-and-Wait) | 한 프레임 보내고 ACK 대기 → 다음 프레임 |
| 슬라이딩 윈도우 (Sliding Window) | 여러 프레임 연속 전송 (ACK 안 기다림) |
2. 정지-대기 프로토콜 (Stop-and-Wait) ⭐⭐⭐⭐⭐
2.1 동작 원리
송신자는 한 프레임을 전송 후 ACK를 받을 때까지 대기. ACK 받으면 다음 프레임 전송.
[송신자] [수신자]
프레임 0 전송 ──────→
ACK 1 ←──────
프레임 1 전송 ──────→
ACK 0 ←──────
프레임 0 전송 ──────→
ACK 1 ←──────
...
2.2 정지-대기 ARQ의 핵심 요소
| 요소 | 역할 |
| 순서 번호 | 1비트(0 또는 1) 만 사용 |
| 타이머 | ACK가 오지 않으면 재전송 |
| ACK | 다음에 받기를 기대하는 프레임 번호 |
2.3 1비트 순서 번호로 충분한 이유
- 한 번에 한 프레임만 처리하므로 0과 1을 번갈아 사용
- 송신자: 프레임 0 → ACK 1 → 프레임 1 → ACK 0 → 프레임 0 → ...
- 중복 프레임 감지 가능 (수신자가 같은 번호 받으면 폐기)
2.4 문제 상황 처리
| 상황 | 처리 방법 |
| 프레임 손실 | 타이머 만료 → 재전송 |
| ACK 손실 | 타이머 만료 → 재전송 → 수신자는 중복 프레임 폐기 후 ACK 재전송 |
| 프레임 오류 | 수신자 NAK 또는 무응답 → 재전송 |
| 중복 프레임 | 1비트 순서 번호로 판별 후 폐기 |
2.5 가장 큰 단점 — 낮은 효율성 ⭐
긴 전송 지연(propagation delay) 시 송신자가 대부분의 시간을 대기하므로 채널 활용률 매우 낮음.
[정지-대기의 문제]
송신: [프레임0]─────────────────────────[프레임1]─...
대기 시간
ACK: ─────────────[ACK1]──────────────
↑─── RTT (Round Trip Time) ───↑
⭐ 위성 통신처럼 RTT가 긴 환경에서는 거의 못 씁니다.
2.6 채널 활용률 계산

전파 지연이 클수록 활용률 급감 → 슬라이딩 윈도우가 필요한 이유.
3. 슬라이딩 윈도우 프로토콜 (Sliding Window) ⭐⭐⭐⭐⭐
3.1 동작 원리
송신자는 ACK를 기다리지 않고 여러 프레임 연속 전송 가능.
윈도우(연속 전송 가능 범위) 내 프레임을 모두 보내고 ACK를 받으며 윈도우를 이동시켜요.
[슬라이딩 윈도우 동작]
송신: [F0][F1][F2][F3][F4]...
↑─── 윈도우 (4개 동시 전송) ───↑
ACK: [A1][A2][A3][A4]...
↑ 받으며 윈도우 슬라이드(이동)
3.2 두 종류의 윈도우
| 윈도우 | 역할 |
| 송신 윈도우 (Sending Window) | 송신했지만 아직 ACK 못 받은 프레임 범위 |
| 수신 윈도우 (Receiving Window) | 수신자가 받기를 기대하는 프레임 범위 |
3.3 윈도우 크기

3.4 누적 ACK (Cumulative ACK)
특정 프레임의 ACK가 오면, 그 이전 모든 프레임도 자동 ACK된 것으로 간주
[누적 ACK 예시]
프레임 0, 1, 2, 3 전송
ACK 4 도착 → "프레임 0~3 모두 잘 받았고, 다음은 4번 받을 차례"
⭐ ACK 손실 일부를 허용하는 구조 — 효율적.
3.5 정지-대기 vs 슬라이딩 윈도우 비교
| 항목 | 정지-대기 | 슬라이딩 윈도우 |
| 동시 전송 | 1개 | 여러 개 |
| 채널 활용률 | 매우 낮음 | 매우 높음 ✅ |
| 구현 복잡도 | 단순 | 복잡 |
| 순서 번호 | 1비트 | 비트 |
| 사용 환경 | 단순한 시스템 | 실제 통신망 (TCP 등) |
4. ARQ (Automatic Repeat reQuest) — 자동 재전송 요청
4.1 ARQ란
ARQ = 오류 감지 시 자동으로 재전송을 요청하는 프로토콜
3가지 종류가 있어요.
| ARQ | 핵심 |
| Stop-and-Wait ARQ | 한 프레임씩 전송·확인 |
| Go-Back-N ARQ | 오류 발생 후 모든 후속 프레임 재전송 |
| Selective Repeat ARQ | 오류 프레임만 선택적 재전송 |
5. Go-Back-N ARQ ⭐⭐⭐⭐⭐
5.1 동작 원리
오류가 발생한 프레임 이후의 모든 후속 프레임을 무조건 재전송
[Go-Back-N 시나리오]
송신: [F0][F1][F2][F3][F4][F5]...
↑
F2 손실 발생
수신자: F0, F1 OK → ACK
F2 X → 폐기
F3 X → 폐기 (순서 어긋남)
F4 X → 폐기
송신자: F2 ACK 못 받음 → 타이머 만료
→ F2부터 다시 전송 (F2, F3, F4, F5 모두 재전송)
5.2 특징
| 특징 | 설명 |
| 수신측 단순 | 순서 어긋난 프레임은 무조건 폐기 (버퍼 작음) |
| 송신측 복잡 | 윈도우 내 모든 프레임 보관 필요 |
| 대역폭 낭비 | 오류 후속 프레임이 OK여도 모두 재전송 |
5.3 윈도우 크기 제한

5.4 Go-Back-N의 장단점
| 장점 | 단점 |
| ✅ 수신측 구현 간단 | ❌ 대역폭 낭비 (OK 프레임도 재전송) |
| ✅ 수신 버퍼 작아도 됨 | ❌ 오류율 높을 때 비효율 |
6. Selective Repeat ARQ (선택적 재전송) ⭐⭐⭐⭐⭐
6.1 동작 원리
오류가 발생한 그 프레임만 선택적으로 재전송. 올바르게 수신된 후속 프레임은 수신측 버퍼에 저장 후 순서 맞춰 전달.
[Selective Repeat 시나리오]
송신: [F0][F1][F2][F3][F4][F5]...
↑
F2 손실 발생
수신자: F0, F1 OK → ACK
F2 X → NAK 또는 ACK 미전송
F3 OK → 버퍼에 저장 (순서 어긋났지만 보관)
F4 OK → 버퍼에 저장
F5 OK → 버퍼에 저장
송신자: F2만 재전송
수신자: F2 도착 → F2, F3, F4, F5 순서대로 상위 계층 전달
6.2 특징
| 특징 | 설명 |
| 대역폭 효율 | 손상 프레임만 재전송 |
| 수신측 메모리 부담 | 순서 어긋난 프레임 보관 필요 |
| 송신측 복잡도 증가 | 어떤 프레임이 ACK 됐는지 개별 추적 |
6.3 윈도우 크기 제한

| 비트 수 n | 순서 번호 범위 | 최대 윈도우 |
| 2 | 0~3 | 2 |
| 3 | 0~7 | 4 |
| 4 | 0~15 | 8 |
⭐ Go-Back-N보다 윈도우 제약이 더 엄격 — 송수신 윈도우가 겹쳐서 혼동 방지.
6.4 Selective Repeat의 장단점
| 장점 | 단점 |
| ✅ 대역폭 매우 효율적 | ❌ 수신 버퍼 메모리 부담 |
| ✅ 오류율 높은 환경에 유리 | ❌ 구현 복잡 |
7. ARQ 3종 비교 ⭐⭐⭐⭐⭐
| 항목 | Stop-and-Wait | Go-Back-N | Selective Repeat |
| 동시 전송 | 1개 | 여러 개 (윈도우) | 여러 개 (윈도우) |
| 재전송 방식 | 1개씩 | 오류 후 모두 | 오류 프레임만 |
| 수신측 버퍼 | 1개 | 작음 | 큼 |
| 순서 번호 비트 | 1 | nn | nn |
| 최대 윈도우 | 1 | 2n−12^n - 1 | 2n−12^{n-1} |
| 효율성 | 매우 낮음 | 중간 | 매우 높음 |
| 수신측 복잡도 | 단순 | 단순 | 복잡 |
| 송신측 복잡도 | 단순 | 중간 | 복잡 |
| 사용 환경 | 단순 시스템 | 일반 환경 | 오류율 높은 환경 |
8. 실전 적용 — TCP의 흐름 제어
현대 인터넷의 TCP는 슬라이딩 윈도우 + Selective Repeat 변형을 사용해요.
| TCP 기능 | 데이터 링크 ARQ 대응 |
| 윈도우 크기 광고 (rwnd) | 슬라이딩 윈도우 |
| 누적 ACK | Go-Back-N 스타일 |
| Selective ACK (SACK) | Selective Repeat 스타일 |
| 빠른 재전송 | 오류 빠른 감지 |
⭐ TCP는 두 ARQ 방식의 장점을 결합한 진화된 형태입니다.
9. 한눈에 정리
9.1 흐름 제어 핵심
정지-대기 → 1개 보내고 ACK 대기 (낮은 효율, RTT 큰 환경 X)
슬라이딩 윈도우 → 여러 개 동시 전송 (높은 효율, TCP 사용)
9.2 ARQ 3종
Stop-and-Wait ARQ → 1비트 순서번호, 가장 단순
Go-Back-N ARQ → 오류 후 모두 재전송, 윈도우 2^n - 1
Selective Repeat → 오류 프레임만 재전송, 윈도우 2^(n-1)
9.3 윈도우 크기 비교
Stop-and-Wait : 1
Go-Back-N : 2^n - 1 (예: n=3 → 7)
Selective Repeat : 2^(n-1) (예: n=3 → 4)
🎯 Lv.1 객관식 — 개념 및 중요 내용 확인 (10문제)
📝 1번 문제
흐름 제어(Flow Control)의 핵심 목적은?
① 데이터를 압축
② 송신자가 수신자를 압도하지 않도록 전송 속도 조절
③ 라우팅 경로 결정
④ IP 주소 자동 할당
✅ 정답: ②
📖 해설
흐름 제어 = 수신자 버퍼 오버플로우 방지를 위해 송신 속도 조절
비유: 수도꼭지(송신)에서 물(데이터)이 너무 빨리 쏟아지면 싱크대(수신 버퍼)가 넘쳐요. 흐름 제어는 그 속도를 조절합니다.
📝 2번 문제
정지-대기(Stop-and-Wait) 프로토콜의 동작은?
① 여러 프레임을 동시에 전송
② 한 프레임 전송 후 ACK 받을 때까지 대기 → 다음 프레임 전송
③ 항상 모든 프레임을 동시에 재전송
④ ACK 없이 무한 전송
✅ 정답: ②
📖 해설
정지-대기 = 한 프레임 → ACK 대기 → 다음 프레임의 단순 구조.
송신: F0 ──→
ACK: ←── A1
송신: F1 ──→
ACK: ←── A0
가장 단순하지만 채널 활용률이 매우 낮아요.
📝 3번 문제
정지-대기 ARQ의 순서 번호는 몇 비트를 사용하는가?
① 1비트 (0 또는 1) ② 4비트 ③ 8비트 ④ 16비트
✅ 정답: ①
📖 해설
정지-대기 ARQ = 1비트 순서 번호 사용. 한 번에 한 프레임만 처리하므로 0과 1을 번갈아 사용하면 충분합니다.
송신 순서: F0 → F1 → F0 → F1 → F0 → ...
📝 4번 문제
정지-대기 프로토콜의 가장 큰 단점은?
① 구현이 너무 복잡
② 긴 전송 지연 시 채널 활용률이 매우 낮음
③ 오류를 감지할 수 없음
④ 무선에서 사용 불가
✅ 정답: ②
📖 해설
정지-대기 = 긴 RTT(Round Trip Time) 환경에서 비효율. 송신자가 대부분의 시간을 ACK 대기로 보냅니다.
송신: [F0]──────────[F1]──────────...
대기 대기
특히 위성 통신 같은 환경에서는 거의 못 써요.
📝 5번 문제
슬라이딩 윈도우 프로토콜의 핵심 특징은?
① 한 프레임씩만 전송
② ACK를 기다리지 않고 윈도우 내 여러 프레임 연속 전송
③ 항상 모든 프레임을 동시에 보냄
④ ACK가 필요 없음
✅ 정답: ②
📖 해설
슬라이딩 윈도우 = ACK 대기 없이 윈도우 내 여러 프레임 연속 전송 → 채널 활용률 높음
송신: [F0][F1][F2][F3][F4]...
↑─── 윈도우 ───↑
ACK가 도착하면 윈도우가 슬라이드(이동)하며 다음 프레임들을 보낼 수 있어요.
📝 6번 문제
누적 ACK(Cumulative ACK)의 의미는?
① 모든 ACK를 합산해서 보냄
② 특정 프레임의 ACK가 오면 그 이전 모든 프레임도 ACK된 것으로 간주
③ ACK가 누적되어 지연됨
④ 한 번에 1000개씩 ACK
✅ 정답: ②
📖 해설
누적 ACK = 특정 ACK가 오면 그 이전 모든 프레임도 자동 ACK 처리
프레임 0, 1, 2, 3 전송
ACK 4 도착 → "프레임 0~3 모두 OK, 다음은 4번 기대"
⭐ ACK 손실 일부를 허용하는 효율적 구조.
📝 7번 문제
Go-Back-N ARQ에서 오류 발생 시 어떻게 처리하는가?
① 오류 프레임만 선택적으로 재전송
② 오류 프레임부터 그 이후 모든 프레임을 재전송
③ 오류를 무시하고 다음으로 진행
④ 통신을 종료
✅ 정답: ②
📖 해설
Go-Back-N = 오류 후 모든 후속 프레임 재전송
F0 OK
F1 OK
F2 X (손실)
F3, F4, F5 → 모두 폐기
→ F2부터 모두 재전송 (F2, F3, F4, F5)
⭐ 수신측은 단순하지만 대역폭이 낭비될 수 있어요.
📝 8번 문제
Selective Repeat ARQ의 핵심 동작은?
① 모든 프레임을 항상 재전송
② 오류가 발생한 프레임만 선택적으로 재전송, 나머지는 수신 버퍼에 보관
③ 한 프레임씩만 전송
④ ACK를 무시
✅ 정답: ②
📖 해설
Selective Repeat = 오류 프레임만 재전송 + 나머지는 수신측 버퍼 보관
F0 OK → 상위 전달
F1 OK → 상위 전달
F2 X → 재전송 요청
F3, F4, F5 OK → 수신 버퍼 보관
F2 재전송 도착 → F2, F3, F4, F5 순서대로 상위 전달
⭐ 가장 효율적이지만 수신측 메모리 부담 큼.
📝 9번 문제
Go-Back-N ARQ에서 순서 번호가 비트일 때 최대 송신 윈도우 크기는?

📝 10번 문제
Selective Repeat ARQ에서 최대 송신 윈도우 크기는?

⭐ Go-Back-N보다 더 엄격한 제약 — 송수신 윈도우가 겹치지 않도록 설계.
🎯 Lv.2 객관식 — 심화 개념 확인 (10문제)
📝 1번 문제
다음 시나리오에서 가장 적합한 흐름 제어 프로토콜은?
"위성 통신에서 RTT(Round Trip Time)가 매우 길다.
채널 활용률을 최대화하면서 데이터를 효율적으로 전송하고 싶다."
① 정지-대기 프로토콜
② 슬라이딩 윈도우 프로토콜
③ 단순 NRZ 부호화
④ 패리티 비트
✅ 정답: ②
📖 해설
RTT가 긴 환경 = 슬라이딩 윈도우 필수
| 환경 | 적합 프로토콜 |
| 짧은 RTT (LAN) | 정지-대기도 OK |
| 긴 RTT (위성) | 슬라이딩 윈도우 ✅ |
⭐ 정지-대기는 ACK 대기 시간이 길어 위성·장거리에서 거의 사용 못 합니다.
📝 2번 문제
정지-대기 프로토콜에서 ACK가 손실되면 어떻게 처리하는가?
① 통신 종료
② 송신자 타이머 만료 → 재전송 / 수신자는 중복 프레임 폐기 후 ACK 재전송
③ 수신자가 모든 데이터를 폐기
④ 자동으로 무시
✅ 정답: ②
📖 해설
ACK 손실 처리
| 단계 | 동작 |
| 1 | 송신자 타이머 만료 |
| 2 | 송신자 프레임 재전송 |
| 3 | 수신자 같은 순서 번호 받으면 중복 인식 → 폐기 |
| 4 | 수신자 ACK 다시 전송 |
⭐ 1비트 순서 번호가 중복 감지에 결정적 역할을 합니다.
📝 3번 문제
다음 시나리오에서 어떤 ARQ가 사용되었는가?
"프레임 0~5를 보내던 중 프레임 2가 손실되었다. 송신자는 프레임 2부터 5까지 모두 다시 보냈다."
① Stop-and-Wait
② Go-Back-N
③ Selective Repeat
④ NAK 없는 단순 전송
✅ 정답: ②
📖 해설
오류 후 모든 후속 프레임 재전송 = Go-Back-N의 특징
F0, F1 OK
F2 X
F3, F4, F5 → 폐기
재전송: F2, F3, F4, F5 (모두)
⭐ 수신측이 단순한 대신 대역폭 낭비가 단점.
📝 4번 문제
다음 시나리오에서 어떤 ARQ가 사용되었는가?
"프레임 0~5를 보내던 중 프레임 2가 손실되었다. 수신자는 프레임 3, 4, 5를 버퍼에 보관했고, 송신자는 프레임 2만 재전송했다."
① Stop-and-Wait
② Go-Back-N
③ Selective Repeat
④ Stop-and-Go
✅ 정답: ③
📖 해설
오류 프레임만 재전송 + 후속 프레임 수신 버퍼 보관 = Selective Repeat
F0, F1 OK
F2 X → 재전송 요청
F3, F4, F5 OK → 수신 버퍼 보관
F2 재전송 → F2, F3, F4, F5 순서대로 상위 전달
⭐ 대역폭 효율적이지만 수신 메모리 부담 큼.
📝 5번 문제
비트 순서 번호일 때, Go-Back-N과 Selective Repeat의 최대 윈도우 크기 비교로 옳은 것은?
① Go-Back-N = 16, SR = 16
② Go-Back-N = 15, SR = 8
③ Go-Back-N = 8, SR = 15
④ Go-Back-N = 4, SR = 4
✅ 정답: ②
📖 해설

📝 6번 문제
다음 중 슬라이딩 윈도우의 두 종류 윈도우 매칭이 옳은 것은?
① 송신 윈도우 — 수신자가 받기 기대하는 프레임 범위
② 수신 윈도우 — 송신자가 ACK 받지 못한 프레임 범위
③ 송신 윈도우 — 송신했지만 ACK 받지 못한 프레임 범위 / 수신 윈도우 — 받기 기대하는 프레임 범위
④ 두 윈도우의 역할이 같다
✅ 정답: ③
📖 해설
| 윈도우 | 역할 |
| 송신 윈도우 | 송신했지만 ACK 못 받은 프레임 범위 |
| 수신 윈도우 | 수신자가 받기 기대하는 프레임 범위 |
윈도우의 헤드/꼬리는 ACK를 주고받으며 슬라이드(이동)합니다.
📝 7번 문제
다음 중 정지-대기 프로토콜에서 1비트 순서 번호가 충분한 이유로 가장 정확한 것은?
① 한 번에 한 프레임만 처리하므로 0과 1을 번갈아 사용하면 충분
② 비트 수가 적을수록 효율적이라서
③ 프레임이 항상 1개씩만 도착하므로
④ 1비트가 표준으로 정해져서
✅ 정답: ①
📖 해설
정지-대기 = 한 번에 한 프레임만 전송하고 ACK 대기 → 0/1만 번갈아 쓰면 중복 감지 가능
F0 → ACK1 → F1 → ACK0 → F0 → ...
만약 ACK가 손실되어 F0이 두 번 도착하면 수신자가 중복을 감지하고 폐기합니다.
📝 8번 문제
다음 중 Go-Back-N ARQ의 단점으로 가장 정확한 것은?
① 수신측이 너무 복잡
② 오류 발생 시 OK였던 후속 프레임도 모두 재전송 → 대역폭 낭비
③ ACK가 필요 없음
④ 1비트 순서 번호만 사용
✅ 정답: ②
📖 해설
| Go-Back-N 특징 | |
| 장점 | 수신측 단순, 버퍼 작아도 OK |
| 단점 | OK 프레임도 재전송 → 대역폭 낭비 ✅ |
⭐ 오류율이 높은 환경에서는 매우 비효율적이라 SR가 더 적합합니다.
📝 9번 문제
다음 시나리오를 분석한 설명 중 가장 정확한 것은?
"현대 인터넷의 TCP는 슬라이딩 윈도우 기반으로, 누적 ACK를 사용하지만 SACK(Selective ACK) 옵션도 지원해 효율을 극대화한다."
① TCP는 정지-대기 프로토콜이다
② TCP는 슬라이딩 윈도우 + Go-Back-N + SR의 장점을 결합한 진화 형태
③ TCP는 ACK를 사용하지 않는다
④ TCP와 ARQ는 무관
✅ 정답: ②
📖 해설
TCP = 슬라이딩 윈도우 + 누적 ACK(GBN 스타일) + SACK(SR 스타일)
| TCP 기능 | 데이터 링크 ARQ 대응 |
| 윈도우 광고 (rwnd) | 슬라이딩 윈도우 |
| 누적 ACK | Go-Back-N |
| SACK | Selective Repeat |
⭐ TCP는 두 ARQ의 장점을 결합한 가장 진화된 형태입니다.
📝 10번 문제

🎯 Lv.3 — 객관식 + 빈칸 채우기 혼합 (10문제)
📝 1번 문제 [빈칸형]
다음 흐름 제어 정의 빈칸을 채우시오.
흐름 제어는 송신자가 수신자를 ( ㄱ ) 않도록 데이터 전송 ( ㄴ )을(를) 조절하는 메커니즘이다. 핵심 목적은 수신자의 ( ㄷ ) 오버플로우를 방지하는 것이다. 두 가지 핵심 프로토콜은 한 번에 한 프레임씩 보내는 ( ㄹ ) 프로토콜과 여러 프레임을 동시에 보낼 수 있는 ( ㅁ ) 프로토콜이다.
✅ 정답
- ㄱ: 압도하지(overwhelming)
- ㄴ: 속도(Rate)
- ㄷ: 버퍼(Buffer)
- ㄹ: 정지-대기(Stop-and-Wait)
- ㅁ: 슬라이딩 윈도우(Sliding Window)
📖 해설 ⭐ 흐름 제어 핵심:
목적 : 수신자 버퍼 보호
방법 : 정지-대기 / 슬라이딩 윈도우
📝 2번 문제 [빈칸형]
다음 ARQ 3종 빈칸을 채우시오.
| ARQ | 핵심 동작 | 최대 윈도우 |
| ( ㄱ ) | 한 프레임 보내고 ACK 대기 | 1 |
| ( ㄴ ) | 오류 후 모든 후속 프레임 재전송 | ( ㄷ ) |
| ( ㄹ ) | 오류 프레임만 재전송, 나머지 버퍼 보관 | ( ㅁ ) |
✅ 정답

📖 해설 ⭐ 윈도우 공식 한 묶음:
Stop-and-Wait: 1
Go-Back-N : 2^n - 1
Selective Repeat: 2^(n-1)
📝 3번 문제 [객관식]

📝 4번 문제 [빈칸형]
다음 정지-대기 ARQ의 문제 상황 처리 빈칸을 채우시오.
| 상황 | 처리 방법 |
| 프레임 손실 | ( ㄱ ) 만료 → 재전송 |
| ACK 손실 | 타이머 만료 → 재전송 → 수신자는 ( ㄴ ) 프레임 폐기 후 ACK 재전송 |
| 중복 프레임 감지 | ( ㄷ )비트 순서 번호로 판별 |
✅ 정답
- ㄱ: 타이머(Timer)
- ㄴ: 중복(Duplicate)
- ㄷ: 1
📖 해설 ⭐ 1비트 순서 번호의 핵심 기능:
F0 → ACK1 → F1 → ACK0 → F0 → ...
순서 번호로 중복 프레임을 감지!
📝 5번 문제 [객관식]
다음 중 누적 ACK(Cumulative ACK)의 동작 원리로 가장 정확한 것은?
① ACK 번호를 모두 합산
② 특정 프레임의 ACK가 도착하면 그 이전 모든 프레임도 ACK된 것으로 간주
③ ACK가 누적되어 지연 발생
④ ACK가 1000번에 한 번씩만 발생
✅ 정답: ②
📖 해설
[누적 ACK 시나리오]
프레임 0, 1, 2, 3 전송
ACK 1, 2, 3 → 손실
ACK 4 도착 → "0~3 모두 OK, 다음은 4번 기대"
⭐ ACK 일부 손실에 강한 효율적 메커니즘. 슬라이딩 윈도우의 핵심 기능 중 하나.
📝 6번 문제 [빈칸형]
다음 시나리오를 분석하고 빈칸을 채우시오.
송신자가 프레임 0~7을 연속 전송했다. 프레임 2가 손실되었고, 프레임 3, 4, 5, 6, 7은 잘 도착했다.
① ( ㄱ ) ARQ를 사용하면: 송신자는 프레임 2부터 7까지 ( ㄴ )를 모두 재전송한다. (대역폭 ( ㄷ ))
② ( ㄹ ) ARQ를 사용하면: 송신자는 프레임 ( ㅁ )만 재전송하고, 수신측은 3~7을 ( ㅂ )에 보관 후 순서대로 상위 전달한다.
✅ 정답
- ㄱ: Go-Back-N
- ㄴ: 6개 프레임(2,3,4,5,6,7)
- ㄷ: 낭비
- ㄹ: Selective Repeat
- ㅁ: 2 (오류 프레임만)
- ㅂ: 수신 버퍼
📖 해설
| ARQ | 재전송 |
| Go-Back-N | F2, F3, F4, F5, F6, F7 (6개) |
| Selective Repeat | F2만 |
⭐ 효율성에서 SR이 압도적이지만 수신 메모리 부담이 큼.
📝 7번 문제 [객관식]
다음 중 정지-대기 프로토콜의 채널 활용률 공식으로 옳은 것은?

📝 8번 문제 [빈칸형]
다음 ARQ 3종 비교 표 빈칸을 채우시오.
| 항목 | Stop-and-Wait | Go-Back-N | Selective Repeat |
| 동시 전송 | ( ㄱ )개 | 여러 개 | 여러 개 |
| 재전송 방식 | 1개씩 | ( ㄴ ) | ( ㄷ ) |
| 수신측 버퍼 | 1개 | 작음 | ( ㄹ ) |
| 최대 윈도우 | 1 | ( ㅁ ) | ( ㅂ ) |
| 효율성 | 매우 낮음 | 중간 | ( ㅅ ) |
✅ 정답
- ㄱ: 1
- ㄴ: 오류 후 모두 재전송
- ㄷ: 오류 프레임만 재전송
- ㄹ: 큼 (메모리 부담)
- ㅁ: 2n−12^n - 1
- ㅂ: 2n−12^{n-1}
- ㅅ: 매우 높음
📖 해설 ⭐ 시험 단골 비교 표 — 통째로 외우세요.
📝 9번 문제 [객관식]

① 메모리를 아끼기 위해
② 송신과 수신 윈도우가 순서 번호 공간에서 겹쳐 옛 재전송 프레임을 새 프레임으로 오인하는 것을 방지
③ 1비트 순서 번호만 사용하므로
④ ACK 횟수를 줄이기 위해
✅ 정답: ②
📖 해설 SR 윈도우 제약: 송신 + 수신 윈도우 합이 순서 번호 공간 (2n2^n )을 넘으면 송신측이 보낸 새 프레임의 번호가 이전 재전송 프레임과 같아져 수신측이 혼동합니다. 이를 막기 위해 송수신 윈도우를 각각 2n−12^{n-1} 로 제한해 합이 2n2^n 을 넘지 않게 해요.
📝 10번 문제 [빈칸형]
다음 종합 표의 빈칸을 채우시오.
| 항목 | 핵심 |
| 흐름 제어 목적 | 수신자 ( ㄱ ) 보호 |
| 정지-대기 순서 번호 | ( ㄴ )비트 |
| 슬라이딩 윈도우 핵심 | 여러 프레임 ( ㄷ ) 전송 |
| Go-Back-N 윈도우 공식 | (ㄹ) |
| Selective Repeat 윈도우 공식 | (ㅁ) |
| 누적 ACK | 특정 ACK = 그 ( ㅂ ) 모두 ACK 처리 |
| 현대 TCP 사용 방식 | 슬라이딩 윈도우 + ( ㅅ ) ACK + ( ㅇ ) ACK 옵션 |
✅ 정답

📖 해설
[14편 한 줄 요약]
흐름 제어 = 버퍼 보호
정지-대기 (1비트) = 단순, 비효율
슬라이딩 윈도우 = 연속 전송, 누적 ACK
Go-Back-N → 윈도우 2^n - 1, 모두 재전송
Selective Repeat → 윈도우 2^(n-1), 오류만 재전송
TCP = 슬라이딩 + 누적 ACK + SACK
'📌 SW전공-개념 > 데이터통신' 카테고리의 다른 글
| ✅ [개념 ch3-13] 오류 제어와 해밍 거리 완벽 정리 | 패리티·CRC·해밍 코드의 비밀 (1) | 2026.05.15 |
|---|---|
| ✅ [개념 ch3-12] 데이터 링크 계층 | 노드-투-노드 통신과 프레이밍 완벽 정리 (0) | 2026.05.14 |
| ✅[개념 ch2-11] 통신망 응용 | PSTN·이동통신·케이블 인터넷·위성 통신 (0) | 2026.05.13 |
| ✅[개념 ch2-10] 변조와 다중화 | ASK·FSK·PSK·QAM부터 FDM·OFDM·TDM·CDMA까지 (1) | 2026.05.12 |
| ✅[개념 ch2-09] 0과 1을 신호로 바꾸는 규칙 | 선 부호화(Line Coding) (1) | 2026.05.11 |